Перетворення FLV в MP4 за допомогою FFMPEG та збереження якості


26

Я намагаюся використовувати ffmpeg для перетворення моїх файлів flv в mp4 для відтворення їх на пристроях iOS, але перетворене відео має набагато гіршу якість, ніж оригінальне.

Ось команда, яку я використовую:

ffmpeg -i input.flv -ar 22050 output.mp4

Я дуже вдячний, якщо хтось міг би надати мені найкращі налаштування для перетворення flv в mp4.

ffmpeg  flv  mp4 

Відповіді:


42

Залежно від кодеків, які використовуються у вашому FLV, ви можете уникнути, просто перемотавши його в контейнер mp4. Вам знадобиться H.264або MPEG4 simple profileвідео, і AACаудіо. Ви можете дізнатися деяку інформацію у вихідному файлі за допомогоюffmpeg -i input.flv

Я не впевнений, чи достатньо добре мати H.264 / MPEG4 Simple + AAC, чи є специфічні варіанти кодеків, які підтримуються. Це досить просто для тестування:

Спробуйте використовувати

ffmpeg -i input.flv -c copy -copyts output.mp4

-copytsце copy timestampsце допоможе аудіо синхронізації.

Якщо це не працює, спробуйте примусити аудіо та відео кодеки. Це перекодуватиме файл:

ffmpeg -i input.flv -c:v libx264 -crf 23 -c:a libfaac -q:a 100 output.mp4

Щоб покращити якість відео, ви можете використовувати більш низьке значення CRF, наприклад, щонайменше до 18.

Щоб покращити якість звуку, використовуйте більш високе значення якості. Для FAAC 100за замовчуванням.


Ось кілька думок про команду ffmpeg, запропоновану у питанні.

-arвідноситься до швидкості вибірки звуку. Я б рекомендував не возитися з цим, поки не зрозумієте речі краще. Якщо ви хочете грати з кодування аудіо, налаштуйте бітрейт (наприклад, -b:a 128k) і дозвольте кодеру вибрати, що робити на основі цього.

Якщо ти все-таки підеш цією дорогою ...

Якість CD - вибірка 44100 Гц; типове відео використовує 48000 ГГц.

Ви можете зауважити, що 22050 у прикладі оригінального запитання становить 1/2 частоти вибірки якості компакт-дисків. якщо ви перетворюєте CD-матеріал, це хороший вибір. Якщо ви починаєте з джерела 48 кГц (який ви, напевно, є; знову ж таки, це набагато частіше, ніж 44100 у відеофайлах), я б замість цього використовував 24 кГц. Це, мабуть, не має великого значення, але це може здатися трохи краще і використовувати трохи менше процесора для перетворення.


перечитавши мою відповідь ... Окрім командного рядка, який я подав вище, ви могли скопіювати лише відео чи лише аудіо та перекодувати інший. наприклад ... "ffmpeg -i input.foo -vcodec copy -acodec libfaac -ab 128k -copyts output.mp4" це скопіює відеопотік і повторно кодує аудіо в AAC. libfaac не має чудової якості, але він працює.
Ден Пріттс

Щодо команди примушування аудіо / відео кодеків: станом на вересень 2019 року я виявив, що ffmpegпідтримка для системи припиненаlibaac . Це питання передбачає або використання ffmpegвбудованого кодера AAC через -c:a aac або кодека Fraunhofer FDK AAC через -c:a libfdk_aac (для якого потрібна компіляція ffmpegз підтримкою libfdk_aac).
aresnick
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.