Używam oprogramowania MyFFVideoConverter. Chciałbym uruchomić skrypt wsadowy. Mój kod wygląda tak:
-i intro.jpg -i <input_file> -codec:v libx264 -s 1920x1080 -acodec copy -strict experimental -movflags faststart -t 00:10:10.00 <output_file>
Działa, ale chciałbym użyć a mylist.txt
zamiast tego polecenie -i intro.jpg
. Skrypt powinien wybrać tylko pierwszy wpis w mylist.txt
na przykład plik intro1.jpg
i usuń pierwszy wpis później. Przy następnym użyciu skryptu intro2.jpg
i usuń ten pierwszy pierwszy wpis i tak dalej.
Odpowiedzi:
Możesz zawinąć swoje obecne polecenie w ten sposób:
(zastąp ... wszystkimi innymi opcjami)
Ta pętla uruchomi twoje polecenie raz w linii
mylist.txt
, za każdym razem używając zawartości linii jako parametru-i
przełącznik.To nie usuwa niczego z
mylist.txt
plik. Możesz usunąć go całkowicie pod koniecrm
.Jeśli naprawdę potrzebujesz tylko wybrać pierwszą linię i ją usunąć, to:
a następnie, aby usunąć pierwszą linię z
mylist.txt
Odraczam cię https://unix.stackexchange.com/questions/96226/delete-first-line-of-a-file co daje kilka rozwiązań.Wszystkie powyższe założenia zakładają, że linie (nazwy plików) nie zawierają spacji lub znaków interpretowanych przez powłokę (| i & amp ;, itd.). Jeśli tak jest, musisz być bardziej ostrożny i chronić rzeczy za pomocą cytatów.
źródło
C:\VideoConverter\Applications\ffmpeg.exe -f image2 -loop 1 -framerate 0.1 -i pic004.jpg -i %~d1%~p1%~n1.mp3 -codec:v libx264 -s 1920x1080 -acodec copy -strict experimental -movflags faststart -t 00:10:10.00 -f mp4 %~d1%~p1%~n1.mp4
C:\VideoConverter\Applications\ffmpeg.exe for line in $(cat mylist.txt); -f image2 -loop 1 -framerate 0.1 -i %~d1%~p1%~n1.mp3 -codec:v libx264 -s 1920x1080 -acodec copy -strict experimental -movflags faststart -t 00:10:10.00 -f mp4 %~d1%~p1%~n1.mp4 -i $line ; done
ale nie odniosłem sukcesu