2015-06-17 2 views
2

Я хотел был бы преобразовать мои .mkv архивы к .mp4 используя FFmpeg. Я попытался следующий код:Преобразование .mkv в h.264 FFmpeg

ffmpeg -i input.mkv -c:v libx264 -c:a libvo_aacenc output.mp4 

Но я получаю ошибку:

Error while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height.

Есть ли способ обойти это? Я попытался установить битрейт аудио, но проблема, похоже, сохраняется.

+0

Связанный: https://superuser.com/questions/639983/avconv-cant-convert-stream-to-mp4-file-fails-with-unable-to-set-encoding-para – Blender

+0

Как говорится в ошибке, у вас неправильные (или отсутствующие) параметры. См. Также: https://trac.ffmpeg.org/wiki/Encode/H.264 – Maxito

+1

'mkv' - [видеоконтент] (https://en.wikipedia.org/wiki/Comparison_of_video_container_formats) и' H.264 'является [кодирующим форматом] (https://en.wikipedia.org/wiki/Comparison_of_video_codecs). Вы не можете преобразовать контейнер в кодирование. – Endoro

ответ

6

Предлагаю вам сначала проверить, есть ли в вашем файле .mkv уже потоки H.264/AAC. Потому что если это произойдет, все, что вам нужно сделать, это скопировать потоки и изменить контейнер:

ffmpeg -i input.mkv -vcodec copy -acodec copy output.mp4 

Если это не так, вы, вероятно, был отклонен, потому что вы не указали битрейт libvo_aacenc. Попробуйте следующее:

ffmpeg -i input.mkv -c:v libx264 -c:a libvo_aacenc -b:a 128k output.mp4 

Но опять же, если ваш .mkv уже содержит H.264/AAC, ИСПОЛЬЗОВАТЬ Первое решение. Это будет быстрее и будет иметь лучшее качество.

+1

Вы можете использовать '-codec copy' или' -c copy' вместо '-vcodec copy -acodec copy'. – LordNeckbeard

+1

Кроме того, если вы хотите кодировать с помощью x264, обычно рекомендуется установить некоторые конкретные настройки кодирования (предустановленный и некоторый метод управления скоростью/q), см. Https://trac.ffmpeg.org/wiki/Encode/H 0,264 –

Смежные вопросы