Próbuję wyodrębnić napisy z wideo jako .srt
plik, użyłem następującego polecenia:
FFMPEG -i mytestmovie.mkv -vn -an -codec:s:0.1 srt sub.srt
Ale dostałem błąd jako nierozpoznana opcja. codec:s:0:1
Czy możesz mi powiedzieć dokładne polecenie i jak wyodrębnić napisy jako .srt
plik w filmie?
Odpowiedzi:
Prosty:
źródło
0:s:1
aby pobrać drugi,0:s:2
aby pobrać trzeci itd.-map
parametry dla każdego pliku. Także-c copy
dlatego, że po prostu wydobywa plik nie próbując go przetworzyć:ffmpeg -i Movie.mkv -c copy -map 0:s:0 subs.01.srt -c copy -map 0:s:1 subs.02.srt
. W każdym razie zajmie to dużo czasu, ponieważ ffmpeg musi odczytać cały plik wideo, aby znaleźć wszystkie części strumieni napisów.-codec:s:0:1
jest nieprawidłowe. Jeśli używasz,-codec:s:0
ffmpeg użyje podanego kodeka dla pierwszego strumienia napisów przekazywanego do wyjścia, jeśli-codec:s:1
go użyjesz, użyje go dla drugiego strumienia napisów itp.Możesz także użyć
-codec:s
do zaznaczenia wszystkich wyjściowych strumieni napisów lub-codec:2
do wybrania trzeciego strumienia wyjściowego, niezależnie od tego, co to jest.Prawdopodobnie jesteś zdezorientowany, ponieważ
-map
opcja zachowuje się w inny sposób - tam musisz wybrać, z którego źródła pochodzi wybrany strumień. (więc-map 0:s:0
wziąłby pierwszy strumień napisów z pierwszego wejścia i przekazał go do wyjścia). Jednak-map
służy do wybierania strumieni, które chcesz pobierać z danych wejściowych; podczas gdy większość innych opcji, które używają mapowania strumienia, są przeznaczone do wykorzystania w strumieniach po ich wybraniu (więc nie ma potrzeby określania, z którego pliku wejściowego pochodzą), ponieważ są one przekazywane do wyjścia.źródło
ffmpeg -i E:\Routine\routine.mkv -map 0:s:0 E:\Routine\sub.srt
(ffmpeg powinien wykryć, że chcesz napisy srt z nazwy pliku wyjściowego)ffmpeg -i film.mp4 -vn -an -codec:s srt film.srt
to powinno skopiować wszystkie napisy do pliku srt.-codec:s
jest równe,-codec:s:0
więc nie zaznacza wszystkich napisów ... wyodrębni pierwszy utwór tekstowy