Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Συγνώμη αν αυτό είναι το λάθος μέρος που ρωτάω αλλά θεωρώ πως εδώ είναι το πιθανότερο να βρω απάντηση.

Έχω ένα synlogy nas που του έχω εγκαταστήσει το ffmpeg ωστε σε mkv αρχεία να μπορεί να μου κάνει μετατροπή το DTS σε AC-3.

Την παραπάνω διαδικασία την εκτελώ με την εντολή:

Αναφορά σε κείμενο

/usr/local/ffmpeg/bin/ffmpeg -i "/volume1/Entertainment/convert/file.mkv" -map 0:v -map 0:a:0 -map 0:a -map 0:s?  -c:v copy -c:s copy -c:a copy -c:a:0 ac3 -disposition:a:0 default -disposition:a:1 0 "/volume1/Entertainment/Converted/file.mkv"

και λειτουργεί άψογα.

Αν θα ήθελα να φτιάξω ένα script που θα έκανε αυτή την μετατροπή σε όλα τα mkv που θα είχε ένας συγκεκριμένος φάκελος πως θα το έκανα;

Βρήκα αυτό αλλά δεν λειτουργεί, να υποθέσω πως είναι για windows;; 

Spoiler

$sources = Get-ChildItem -path "/volume1/Entertainment/Convert*" -Recurse -Include *.mkv
$ffpath = "/usr/local/ffmpeg/bin/ffmpeg"
foreach ($source in $sources)    
{$DirOut = "/volume1/Entertainment/Converted"
$output = Join-Path $DirOut -ChildPath ((Get-Item $source).basename + ".mkv")
& $ffpath -i $source -map 0:v -map 0:a:0 -map 0:a -map 0:s?  -c:v copy -c:s copy -c:a copy -c:a:0 ac3 -disposition:a:0 default -disposition:a:1 0 $output -loglevel 8 -stats}

Το log γράφει: 

Spoiler

sh: =: command not found
sh: line 1: =: command not found
sh: -c: line 2: syntax error near unexpected token `$source'
sh: -c: line 2: `foreach ($source in $sources)    '

Έχουμε καμιά ιδέα;;

Δημοσ. (επεξεργασμένο)

Ναι είναι για windows.

Φτιάξε ένα sh αρχείο και βάλε αυτά

cd /volume1/Entertainment/convert/
for i in *.mkv
do
	/usr/local/ffmpeg/bin/ffmpeg -i $i -map 0:v -map 0:a:0 -map 0:a -map 0:s\? -c:v copy -c:s copy -c:a copy -c:a:0 ac3 -disposition:a:0 default -disposition:a:1 0 /volume1/Entertainment/Converted/$i.mkv
done

 

Επεξ/σία από coffeex
  • Like 1
  • Thanks 1
Δημοσ.

Καλύτερα με την while για να μην έχεις θέμα με τα αρχεία που έχουν κενά στα ονόματα τους:

cd /volume1/Entertainment/convert/
ls -1 *.mkv | while read line
do
	/usr/local/ffmpeg/bin/ffmpeg -i "$line" -map 0:v -map 0:a:0 -map 0:a -map 0:s\? -c:v copy -c:s copy -c:a copy -c:a:0 ac3 -disposition:a:0 default -disposition:a:1 0 "/volume1/Entertainment/Converted/$line"
done
  • Like 1
  • Thanks 1
Δημοσ.

Ευχαριστώ πολύ για την βοήθεια :D

Το script του Oxygene έκανε την μετατροπή του πρώτου αρχείου στον φάκελο και μετά σταμάτησε, ίσως να έκανα κι εγώ κάποιο λάθος βέβαια γιατί άλλαξα λίγο τους φάκελους

Το script του coffeex φαίνεται να λειτουργεί κανονικά

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...