Skrypty ze zmiennymi z pliku

5

Mam na komputerze kilka filmów, które chciałbym skrócić. Na przykład mam 30-sekundowe wideo, w którym chcę mieć sekcję od 15 do 20 sekund (5-sekundowe wideo). Aby to wyciąć, używam avconv.

avconv -i input.mp4 -ss 15 -acodec copy -vcodec copy -t 5 output.mp4

To polecenie działa całkiem dobrze. Mam wiele filmów, które chcę wyciąć w ten sam sposób. Dlatego stworzyłem plik tekstowy zawierający informacje: nazwa wejściowa, początek cięcia, długość cięcia, nazwa wyjściowa. Są one zapisane w pliku in.txt, który wygląda następująco:

input.mp4 15 5 output.mp4
input1.mp4 32 10 output1.mp4
input2.mp4 10 7 output2.mp4
...

Moje pytanie brzmi: jak zmodyfikować polecenie avconv, aby automatycznie wycinać filmy? Próbowałem tego, ale to w ogóle nie działało:

avconv -i $1 -ss $2 -acodec copy -vcodec copy -t $3 $4 < in.txt

Dowolny pomysł?

Nooster
źródło

Odpowiedzi:

6

W bashu sugerowałbym coś takiego

while read -r infile ss t outfile; do 
  avconv -i "$infile" -ss "$ss" -acodec copy -vcodec copy -t "$t" "$outfile"
done < in.txt
steeldriver
źródło