ffmpeg i błąd „nie można znaleźć odpowiedniego wyjścia”

18

Próbuję przekonwertować duży plik MKV do oldskulowego pliku AVI.

Próbuję tego:

ffmpeg -i video.mkv -s -codec:v mpeg4 -bf 1 -b 2567k -mbd 2 -g 300 -flags cgop -acodec copy video.avi

ale rozumiem

[NULL @ 0x7fa0d901e600] Unable to find a suitable output format for 'mpeg4' mpeg4: Invalid argument

Długa wersja wiadomości ffmpeg ...

ffmpeg version 2.1.3 Copyright (c) 2000-2013 the FFmpeg developers
  built on Feb  4 2014 17:53:32 with Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/2.1.3 --enable-shared     --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-     hardcoded-tables --enable-avresample --enable-vda --cc=clang --host-cflags=        --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid
  libavutil      52. 48.101 / 52. 48.101
  libavcodec     55. 39.101 / 55. 39.101
  libavformat    55. 19.104 / 55. 19.104
  libavdevice    55.  5.100 / 55.  5.100
  libavfilter     3. 90.100 /  3. 90.100
  libavresample   1.  1.  0 /  1.  1.  0
  libswscale      2.  5.101 /  2.  5.101
  libswresample   0. 17.104 /  0. 17.104
  libpostproc    52.  3.100 / 52.  3.100
Input #0, matroska,webm, from ‘video.mkv':
  Metadata:
    creation_time   : 2011-05-11 09:25:47
  Duration: 00:49:01.35, start: 0.000000, bitrate: 2851 kb/s
    Stream #0:0(eng): Video: h264 (High), yuv420p(tv, bt709), 1280x720, SAR 1:1 DAR 16:9, 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
    Stream #0:1(eng): Audio: ac3, 48000 Hz, 5.1(side), fltp, 384 kb/s (default) (forced)
    Stream #0:2(eng): Subtitle: subrip
[NULL @ 0x7fa0d901e600] Unable to find a suitable output format for 'mpeg4' 
mpeg4: Invalid argument

Masz pomysł, co się dzieje?

EDYCJA: Zamierzałem użyć ffmpeg po tym, jak konwerter DivX - zarówno na Macu, jak i Windowsie - zawiódł w różnych momentach podczas próby transkodowania wideo do profilu DivX Home Theater. Najbliżej znalazłem odpowiedź shlcka. Wyrzucił tylko ostrzeżenia (a nie błędy). W każdym razie nie udało mi się odtworzyć wideo na odtwarzaczu DVD (zatrzyma się co 10 sekund na około 6 sekund). Jeśli znalazłeś to pytanie podczas próby stworzenia filmu zgodnego z profilem DivX Home Theater, możesz użyć tego ciągu jako punktu wyjścia, aby dowiedzieć się, co jest nie tak, i opublikować nowe pytanie uzupełniające do SU:

ffmpeg -i video.mkv -s 720x406 -codec:v mpeg4 -bf 1 -b:v 2567k -mbd 2 -g 300 -flags cgop -sc_threshold 1000000000 -acodec copy video.avi

(W końcu oddałem stary odtwarzacz DVD).

lodowa
źródło
-s określa rozmiar wyniku. Format to -swxh, gdzie w i h to szerokość i wysokość wyniku.
Vineet Menon
Dzięki, ale jeśli przeczytasz moją edycję lub odpowiedź i komentarze slhck, które zaakceptowałem, zobaczysz, że to była pierwsza rzecz, która została poprawiona.
Iceequal
Tak! nieco później spostrzegłem twoje zredagowane pytanie.
Vineet Menon

Odpowiedzi:

14

Masz tam samotną -sopcję. Brakuje jej argumentu.

Powinieneś określić żądany rozmiar lub całkowicie go pominąć - w przeciwnym razie nie będzie on -codec:vpoprawnie interpretował i zakładał, że mpeg4twoja nazwa pliku wyjściowego.

Dodatkowo używaj -b:vzamiast po prostu -b- to niejednoznaczne.

ffmpeg -i video.mkv -s 1280x720 -codec:v mpeg4 -bf 1 -b:v 2567k -mbd 2 -g 300 -flags cgop -acodec copy video.avi
slhck
źródło
Dzięki! Wstawiłem -s 720x406, ale teraz otrzymuję: [mpeg4 @ 0x7fc13a813800] Niepoprawny współczynnik proporcji pikseli 406/405, ograniczenie to 255/255 zmniejszanie / [mpeg4 @ 0x7fc13a813800] zamknięte gop z wykrywaniem zmiany sceny nie są jeszcze obsługiwane, ustaw próg na 1000000000 (...) / Błąd podczas otwierania enkodera dla strumienia wyjściowego # 0: 0 - może niepoprawne parametry, takie jak bit_rate, szybkość, szerokość lub wysokość / Używam rozdzielczości sugerowanej przez aplikację DivX Converter dla „kina domowego” profil ma ten sam plik wejściowy (konwerter DivX ma własne krytyczne błędy). Masz jakiś pomysł, gdzie można stąd przejść w / ffmpeg?
Iceequal
(Poprawiłem także opcję -b)
wyrównanie lodu
Usuń, -flags cgopjeśli nie jest to konieczne. Lub dodaj -sc_threshold 1000000000jako opcję.
slhck
-sc_threshold 1000000000zezwolił ffmpeg na przynajmniej transkodowanie pliku. Dla każdego, kto próbuje stworzyć film zgodny z profilem DivX Home Theatre, zapoznaj się z moim edytowanym pytaniem powyżej (musisz zrobić więcej pytań / badań).
Iceequal