использовать ffmpeg для преобразования mp4 в тот же высококачественный avi файл?

Я хотел бы использовать ffmpeg для преобразования mp4 видеофайла в avi, но с тем же качеством, даже если это занимает больше места. Если я просто делаю:

ffmpeg -i file.mp4 file.mp4.avi

Получающийся avi файл является очень низким качеством и пикселизированный. Как я могу сделать это преобразование при хранении качества видео и качества звука?

28
задан 6 July 2014 в 19:54

3 ответа

Вы всегда теряете немного качества каждый раз, когда Вы транскодируете от одного кодека до другого, видео или аудио, но возможно можно избежать его, если Вы только хотите измениться от контейнерного типа MP4 до контейнера AVI. codec:copy может быть полезным, если у Вас нет причины транскодировать (и это должно быть быстрее).

Если необходимо транскодировать, потому что необходимо использовать конкретный видеокодек, я надеюсь, что можно использовать предложение zetah выше в его комментарии и использовать -sameq переключатель. С другой стороны, можно хотеть использовать qscale опция установить качество вручную. Чем ниже число, тем лучше качество, но больше пространства Ваш файл возьмет.

В прошлый раз, когда я транскодировал видео, я использовал qscale=8.0, но я предложил бы, чтобы Вы экспериментировали, чтобы найти, что оптимум соответствует качеству Вашего входа.

Marty Jay услужливо упоминает, что sameq означает тот же квантизатор как во входе, который не может привести к тому же качеству. Статья, которую он заключает упоминаниям в кавычки с помощью многопроходного преобразования, которое является хорошим способом достигнуть лучшего сжатия, не жертвуя качеством.

16
ответ дан 23 November 2019 в 00:59

Вот мой с 2 передачами (Усовершенствованный Простой Профиль), я использую время от времени.

передача 1:

ffmpeg -i file.mp4 -vcodec mpeg4 -vtag XVID -b 990k -bf 2 -g 300 -s 640x360 -pass 1 -an -threads 0 -f rawvideo -y /dev/null

передача 2:

ffmpeg -i file.mp4 -vcodec mpeg4 -vtag XVID -b 990k -bf 2 -g 300 -s 640x360 -acodec libmp3lame -ab 128k -ar 48000 -ac 2 -pass 2 -threads 0 -f avi file.avi
4
ответ дан 23 November 2019 в 00:59

Мое решение:

ffmpeg -i filename.mp4 -vcodec copy -acodec copy filename.avi

Приятного отдыха!!

10
ответ дан 23 November 2019 в 00:59

Другие вопросы по тегам:

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