ffmpeg теряет качество видео

#android #ffmpeg #android-ffmpeg

Вопрос:

Все хорошо , но мой результат видео слишком низкого качества, я впервые использую ffmpeg

Это мой приказ

 I/System.out: "-y" "-noautorotate" "-ss" "0" "-t" "31" "-i" "/storage/emulated/0/Download/20210227_175547.mp4" "-vf" "crop=w=3837:h=2160:x=1:y=-2070" "-r" "15" "-vcodec" "mpeg4" "-acodec" "copy" "-b:v" "2500k" "/storage/emulated/0/VEditor/VideoCroper/20210227_175547-0-13.mp4"
 

Комментарии:

1. Добавьте «-vb» «20 М» перед вашим выходным путем. Это даст вам лучшее качество.

2. Зачем использовать старый mpeg4 вместо более современного кодера, такого как libx264, libx265, libvpx-vp9?

3. @llogan это мой первый раз, когда я использую ffmpeg . я постараюсь изучить больше и попробовать этот кодировщик modeern

4. @cropperteam Используйте I/System.out: "-y" "-noautorotate" "-ss" "0" "-t" "31" "-i" "/storage/emulated/0/Download/20210227_175547.mp4" "-vf" "crop=w=3837:h=2160:x=1:y=-2070" "-r" "15" "-vcodec" "libx264" "-crf" "18" "-acodec" "copy" "/storage/emulated/0/VEditor/VideoCroper/20210227_175547-0-13.mp4" и читайте вики-файл FFmpeg: H. 264 . Это предполагает, что ffmpeg настроен с --enable-libx264 помощью .

5. @llogan все еще получает низкое качество, это моя полная команда "-y","-noautorotate", "-ss", Start, "-t", Duration, "-i",file_name, "-strict", "experimental", "-vf",sb.toString(), "-r", "15", "-ab", "128k", "-vcodec", "mpeg4", "-acodec", "copy", "-b:v", "2500k", "-sample_fmt", "s16", "-ss", "0", "-t", this.Duration, Output}, Output);

Ответ №1:

Используйте libx264 вместо старых mpeg4 :

 I/System.out: "-y" "-noautorotate" "-ss" "0" "-t" "31" "-i" "/storage/emulated/0/Download/20210227_175547.mp4" "-vf" "crop=w=3837:h=2160:x=1:y=-2070" "-r" "15" "-vcodec" "libx264" "-crf" "23" "-acodec" "copy" "-movflags  faststart" "/storage/emulated/0/VEditor/VideoCroper/20210227_175547-0-13.mp4"
 

Контролируйте качество с -crf помощью опции. Более подробная информация на вики-сайте FFmpeg: H. 264.