ffmpeg и ошибка «невозможно найти подходящий вывод»

61098
iceequal

Я пытаюсь преобразовать большой MKV в файл AVI старой школы.

Я пытаюсь это:

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

но я получаю

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

Длинная версия сообщения 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 

Есть идеи, что происходит?

РЕДАКТИРОВАТЬ: я намеревался использовать ffmpeg после того, как DivX Converter - как на Mac, так и на Windows - потерпел бы неудачу в различных точках, пытаясь перекодировать видео в профиль DivX Home Theater. Самый близкий, который я получил, был ответом shlck. Он выдавал только предупреждения (а не ошибки). В любом случае, я не мог заставить видео воспроизводиться на DVD-плеере (он зависал каждые 10 секунд в течение примерно 6 секунд). Если вы нашли этот вопрос, пытаясь исследовать создание совместимого с профилем видео DivX Home Theater, вы можете использовать эту строку в качестве отправной точки, чтобы выяснить, что не так, и опубликовать новый вопрос для 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

(В конце концов я отдал старый DVD-плеер).

8
-s - указать размер вывода. Формат -swxh, где w и h - ширина и высота вывода. Vineet Menon 10 лет назад 0
Спасибо, но если вы прочитаете мое редактирование или ответ и комментарии от slhck, которые я принял, вы увидите, что это было первое, что было исправлено. iceequal 10 лет назад 0
да уж! я видел твой отредактированный вопрос немного поздно. Vineet Menon 10 лет назад 0

1 ответ на вопрос

5
slhck

You have a lonely -s option there. It misses its argument.

You should specify the size you want or leave it out entirely – otherwise it will not interpret -codec:v correctly and assume mpeg4 is your output filename.

Additionally, use -b:v instead of just -b – it's ambiguous.

ffmpeg -i video.mkv -s 1280x720 -codec:v mpeg4 -bf 1 -b:v 2567k -mbd 2 -g 300 -flags cgop -acodec copy video.avi 
Спасибо! Я поставил -s 720x406, но теперь получаю: [mpeg4 @ 0x7fc13a813800] Неверное соотношение сторон пикселя 406/405, ограничение 255/255, уменьшение / [mpeg4 @ 0x7fc13a813800] закрытый гоп с обнаружением смены сцены пока не поддерживается, установите порог равным 1000000000 (...) / Ошибка при открытии кодировщика для выходного потока # 0: 0 - возможно, неверные параметры, такие как bit_rate, rate, width или height / Я использую разрешение, которое приложение DivX Converter предлагает для «Домашнего кинотеатра» профиль с тем же входным файлом (конвертер DivX имеет свои фатальные ошибки). Любая идея, куда идти отсюда w / ffmpeg? iceequal 10 лет назад 0
(Я также исправил опцию -b) iceequal 10 лет назад 0
Удалите `-flags cgop`, если вам это не нужно. Или добавьте `-sc_threshold 1000000000` в качестве опции. slhck 10 лет назад 0
`-sc_threshold 1000000000` позволил ffmpeg хотя бы перекодировать файл. Если вы пытаетесь создать совместимое с профилем видео DivX для домашнего кинотеатра, см. Мой отредактированный вопрос выше (вам нужно больше спрашивать / исследовать). iceequal 10 лет назад 0

Похожие вопросы