2015-02-11 5 views
1

У меня плохое качество звука, в то время как я конвертирую от wmv в mp4 с помощью ffmpeg. Моя команда ffmpeg выглядит следующим образом:Видеообработка с использованием ffmpeg потери качества звука

ffmpeg -fflags +genpts+igndts -i "1.wmv" -c:v libx264 -preset fast -level 30 \ 
-qmin 38 -qmax 55 -movflags faststart -r:v 10 -vsync 2 -async 1 -map 0:v,0:a \ 
-map 0:a "1.mp4" 

Может ли кто-нибудь предложить, как я могу конвертировать видео без потери качества?

+0

В следующий раз, когда вы отправляете сообщения о проблемах командной строки ffmpeg, пожалуйста, 1) разместите их на [SU], где они находятся на тему, и 2) включите полный, неразрезанный вывод командной строки. Я проголосовал за то, чтобы перенести ваш вопрос. – slhck

ответ

-1

для преобразования без потерь, установите -acodec copy

+0

Если вход представляет собой файл .wmv, возможно, что вы не можете мультиплексировать аудиопоток в контейнер MP4. – slhck

1

не установлена ​​какой-либо опции для аудио битрейта или качества, что означает, что FFmpeg будет выбрать лучший кодер AAC он сконфигурирован с (который, вероятно, будет libvo-aacenc или libfaac), и он выберет битрейт аудио по умолчанию.

Поскольку вы конвертируете то, что уже сжато с потерянным кодеком, вы потеряете еще больше качества.

Попробуйте установить битрейт звука с помощью -b:a 192k или выше. Для LC-AAC обычно достаточно 128 kBit/s, но если ваш источник сжат.

Вы можете настроить/скомпилировать FFmpeg с --enable-libfdk-aac и использовать -b:a libfdk-aac и использовать -vbr 4 или даже -vbr 5. Прочтите AAC encoding guide для получения дополнительной информации.

Так, например, используйте эту команду. Я не рекомендую устанавливать qmin и qmax, но вместо этого вы должны использовать CRF encoding. При установке qmin и qmax, вы сдерживая качество видео слишком много:

ffmpeg -i "1.wmv" -c:v libx264 -preset fast -level 30 -crf 23 \ 
-c:a aac -strict experimental -b:a 192k \ 
-movflags faststart \ 
-r:v 10 "1.mp4" 

Я предполагаю, что вы действительно хотите, чтобы уменьшить частоту кадров до 10 кадров в секунду. Если нет, удалите -r:v. Я удалил опции flags и vsync/async, так как я не думаю, что они абсолютно необходимы для вашей команды.

+0

Привет, slhck, Не могли бы вы рассказать мне, какая полная команда ffmpeg после добавления -b: a 192k –

+0

См. Мой обновленный ответ. Обратите внимание, что я удалил ваши дополнительные опции 'sync' и' fla g'. – slhck

0

Сделайте свой qmin до 10 и qmax до 38 и используйте -quality good. Qmin и Qmax - это те, которые контролируют качество вашего медиа. И вы также можете включить -quality хорошо в вашей команде для лучшей производительности.

ffmpeg -fflags +genpts+igndts -i "1.wmv" -quality good -c:v libx264 -preset fast -level 30 \ -qmin 10 -qmax 38 -movflags faststart -r:v 10 -vsync 2 -async 1 -map 0:v,0:a \ -map 0:a "1.mp4" 
+0

OP говорит о качестве звука, а не качестве видео. И '-quality good' не является допустимым вариантом. – slhck

+0

@slhck -quality good - это действительный вариант, который я использую для моего проекта и его работоспособности. –

+0

Существует опция '-quality', но она действительна только для' libvpx' или 'libwebp'. См. 'Ffmpeg -h encoder = libvpx'. В случае этого вопроса или даже вашей командной строки опция не будет иметь никакого эффекта, и это, конечно же, не повысит качество. (Особенно, если не установлены 'qmin' и' qmax'.) – slhck

-2
ffmpeg -i source.mpg -sameq output.mp4 

Нет необходимости сложного кода, прежде никогда не будет ставить под угрозой качества.

+1

-1, это неправильно. Пожалуйста, прочитайте: [sameq не означает «такое же качество»] (http://superuser.com/a/478550/48078). У ffmpeg больше нет этой опции. Кроме того, у ОР проблемы со звуком. – slhck

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