Более качественное преобразование FFMPEG из МТС в AVI
Я получил следующий код с какого-то форума. Я новичок, поэтому, пожалуйста, ответьте на мои вопросы...
Мне нужно конвертировать видео из МТС в AVI в очень хорошем качестве. В настоящее время я использую следующий код для преобразования.
for %%a in ("*.mts") do ffmpeg.exe -i "%%a" -vcodec libxvid -vtag XVID -aspect 16:9 -maxrate 1800k -b 1500k -qmin 10 -qmax 42 -bufsize 5120 -acodec libmp3lame -ac 2 -ab 160k -y "%%~na_xvid.avi"
for %%a in ("*.m2ts") do ffmpeg.exe -i "%%a" -vcodec libxvid -vtag XVID -aspect 16:9 -maxrate 1800k -b 1500k -qmin 10 -qmax 42 -bufsize 5120 -acodec libmp3lame -ac 2 -ab 160k -y "%%~na_xvid.avi"
Но я ожидаю лучшего качества, чем выше. Как мне это получить?
2 ответа
MPEG-4 часть 2 видео
При кодировании видео в формате MPEG-4 часть 2 с использованием кодеров mpeg4
или же libxvid
использование -qscale:v
(или псевдоним -q:v
).
ffmpeg -i input -c:v libxvid -qscale:v 2 -c:a libmp3lame -ac 2 -q:a 4 output.avi
регулировать
-qscale:v
для качества видео и-q:a
(похожий наlame -V
) для качества звука.Чем ниже значение, тем выше качество для обоих вариантов. Вы не сможете определить разницу между входом и выходом с помощью
-qscale:v 2
,
Также см:
Видео H.264 и H.265/HEVC
Видео MPEG-4 Part 2 устарело. Использование более современного формата обеспечит лучшее качество при более низких битрейтах.
Простой пример, предполагающий ваше ffmpeg
имеет поддержку libx264/libx265 (вероятно, имеет):
ffmpeg -i input output.mp4
В приведенном выше примере будет использоваться настройка по умолчанию, аналогичная приведенной ниже:
ffmpeg -i input -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k output.mp4
- Избегайте AVI, если это возможно, с этими кодировщиками.
- Используйте AAC вместо MP3.
Также см:
Будучи любителем, я использую Linux. ffmpeg -i video.MTS -acodec copy -vcodec rawvideo -y video.avi
сохранить сырое видео и оригинальные аудиоданные. Флаги плюс варианты
-i: input file
-acodec copy: copy audio codec
-vcodec rawvideo: keep raw data for video codec
-y: silently overwrite output files
Для кучки .mts
файлы в одном каталоге, запустите
for f in *.MTS; do ffmpeg -i $f -acodec copy -vcodec rawvideo -y ${f%.*}.avi; done
Это сохраняет качество видео, хотя приводит к довольно огромным .avi
файлы.