Итак, у меня есть куча файлов .mp4, и мне нужно изменить видео и аудио кодеки, чтобы иметь возможность воспроизводить их на моем устройстве.

Видеокодек на данный момент h264 и мне нужен mpeg4. Аудиокодек aac и мне нужен mp3.

Я пытаюсь преобразовать их с помощью этой команды ffmpeg:

ffmpeg -y -i input -s:v 800x480 -c:v mpeg4 -c:a mp3 output

Работает нормально, за исключением качества, потому что ffmpeg использует очень низкий битрейт.

Теперь у меня вопрос, нужно ли мне указать качество / битрейт или можно ли как-то сказать ffmpeg как-то использовать оригинальный битрейт.

-vcodec copy не является опцией, потому что видеокодек остается прежним.

1 ответ1

2

Работает нормально, за исключением качества, потому что ffmpeg использует очень низкий битрейт.

Значения по умолчанию для mpeg4 выбраны неправильно, поэтому целевой битрейт довольно низок. Укажите вашу собственную цель с -b:v 2M (в зависимости от вашего разрешения) или, что еще лучше, используйте постоянное качество с -q:v 5 (как предложено Mulvya в комментариях). В последнем случае более низкие значения означают лучшее качество.

Теперь у меня вопрос, нужно ли мне указать качество / битрейт или можно ли как-то сказать ffmpeg как-то использовать оригинальный битрейт.

Нет - это даже не имеет смысла делать. Если вы переходите от одного кодека к другому, они могут быть менее или более эффективными. Каждый кодек предлагает разное качество на разных битрейтах - например, H.264 намного более эффективен, чем MPEG-4 Part II. H.265 на 30–50% эффективнее, чем H.264 и т.д. То же самое относится и к реальным кодерам, реализующим кодеки: x264 более эффективен, чем эталонный кодер H.264 и т.д.

Поэтому, взятие оригинального битрейта может не сработать. И даже при сохранении того же кодека, если вы повторно сжимаете, вы можете использовать еще более высокий битрейт, чтобы избежать потери генерации.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .