використовувати ffmpeg для перетворення mp4 в той самий якісний файл avi?


28

Я хотів би використовувати ffmpeg для перетворення відео-файлу mp4 в avi, але з такою ж якістю, навіть якщо він займає більше місця. Якщо я просто роблю:

ffmpeg -i file.mp4 file.mp4.avi

Отриманий файл avi дуже низькоякісний і піксельний. Як я можу зробити це перетворення, зберігаючи якість відео та аудіо?


3
Ви можете використовувати -sameqперемикач, який помістить той самий відеокодек (якщо припустити H264) у контейнер AVI. Якщо ваш плеєр не підтримує H264 в AVI, вам потрібно перекодувати найкращий можливий формат відео (H264) в якийсь посередній формат, що не є корисним. Потім ви призначаєте більш високий бітрейт XVID (скажімо, 2000 Кб / с). Аудіо не має великого значення IMHO, але краще перетворити в MP3, а потім AC3
zetah

Відповіді:


16

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

Якщо вам потрібно перекодувати, тому що вам потрібно використовувати певний відеокодек, я сподіваюся, що ви можете використати вищезгадану пропозицію зета у своєму коментарі та використовувати -sameqперемикач. Крім того, ви можете скористатися qscaleопцією, щоб встановити якість вручну. Чим менше число, тим краща якість, але тим більше місця займе ваш файл.

Востаннє я перекодував відео, яке я використав qscale=8.0, але я б запропонував вам поекспериментувати, щоб знайти оптимальний варіант, який відповідатиме якості вашого вводу.

Марті Джей з користю згадує, що sameq означає той же квантователь, що і на вході, що може не призвести до тієї ж якості. У статті, яку він цитує, згадується використання багатопрохідного перетворення, що є хорошим способом досягти кращого стиснення без шкоди для якості.


Дякую за поради, я спробую -sameqпобачити, як це відбувається.
719016

8
-sameq НЕ означає однакову якість; ffmpeg.org/trac/ffmpeg/wiki/…

3
Здається, рекомендується використовувати -qscale 0опцію
user989762

Досить старий, але я отримав це попередження, намагаючись зробити це сьогодні:Option 'sameq' was removed. If you are looking for an option to preserve the quality (which is not what -sameq was for), use -qscale 0 or an equivalent quality factor option.
Дейв Лугг

10

Моє рішення:

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

Насолоджуйтесь !!


2
Пам’ятайте, що для вбудовування AVC-потоків у контейнери AVI потрібен хак, який підтримується багатьма відеопрогравачами, керованими спільнотою (наприклад, VLC, MPlayer, FFmpeg / Libav або GStreamer, Media Player Classic), але не багатьма комерційними плеєрами (наприклад, Windows Media Player і QuickTime / iTunes не підтримують його).
Девід Фоерстер

4

Ось мій 2 пропуск (Advanced Simple Profile), який я використовую час від часу.

пас 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

Це чудово, випустили мені дуже маленьке аві з дуже гарною якістю!
jpo38
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.