Мы используем ffmpeg и скрипт транскодирования для транскодирования и хотим создать несколько командных файлов, которые мы можем использовать для транскодирования.
Например, я использую параметр с именем, video_kbit
и если я пишу в 30000, он должен достигать 30 Мбит. Конечно, если я использую в 6000
качестве параметра, он также должен достигать 6 Мбит, поэтому у меня есть один скрипт, который достигает каждого битрейта видео, который я хочу.
Поскольку мои настройки сейчас, я достигаю только 18,1 Мбит. Только когда я использую 15000 в качестве параметра, я достигаю своей цели для постоянного битрейта видео 15 Мбит. Если я использую 8000 в качестве параметра, я получаю 10,1 МБит в результате. Таким образом, при 15000 я получаю более высокий битрейт, а при 15000 я получаю более низкий битрейт, чем хочу.
Мои настройки:
ffmpeg -threads "4" -i "$2" -f mp4 -c:v libx264 -crf 1 \
-bufsize 30000k -maxrate ${FC_PARAM_video_kbit}k \
-acodec libfaac -ac 2 -ab ${FC_PARAM_audio_kbit}k -ar 44100 \
-pix_fmt yuv420p -vf scale=${FC_PARAM_width}:${FC_PARAM_height} -y "$3"
И я использую эти параметры:
FC_PARAM_video_kbit = 30000
FC_PARAM_audio_kbit = 192
FC_PARAM_width = 1920
FC_PARAM_height = 1080
Я пытался использовать более высокий размер буфера profile:v
и настройки уровня, но ничто не помогло мне получить постоянный битрейт видео 30000 Мбит.
Ребята, есть ли у вас какие-либо идеи или предложения для лучшего способа достижения моей цели?