2014-01-09 43 views
0

我正在尋找與libx264 ffmpeg的選項。 我想操作它,就像固定幀類型的硬件編碼器一樣。如何用libx264,I,P,B命令設置ffmpeg的選項?

IBBPBBPBBPBBPBB..IBBPBBPBBPBBP..IBBPBBP ...

請給我一個建議。

#!/bin/bash 

    INFILE=$1 
    IFILE=$1.ts 

    OPT_CRF="-g 120 -c:v libx264 -crf 18 -bf 2" 
    VAL_CBR="20000k" 
    OPT_COMMON="-c:v libx264 -b:v $VAL_CBR -minrate $VAL_CBR -maxrate $VAL_CBR -g 60" 

    ffmpeg -i $IFILE -vf crop=1920:1088:0:16 $OPT_COMMON -acodec copy ${INFILE}.1.ts 
    ffmpeg -i $IFILE -vf crop=1920:1088:1920:16 $OPT_COMMON -an ${INFILE}.2.ts 
    ffmpeg -i $IFILE -vf crop=1920:1088:0:1104 $OPT_COMMON -an ${INFILE}.3.ts 
    ffmpeg -i $IFILE -vf crop=1920:1088:1920:1104 $OPT_COMMON -an ${INFILE}.4.ts 
+0

爲什麼你想做的事那?請解釋。 – LordNeckbeard

+0

我正在測試播放4ea播放器,該播放器是機器並與以太網連接進行同步。但沒有同步。播放同一個文件時可能會同步。 – PeanutStars

回答

3

如果要強制固定的P/B模式比你應該禁用B幀自適應算法,並通過使用舊式的全局選項指定最大連續B幀編號,例如「-b_strategy 0 -bf 2 「對於PBBPBBPBBP ...模式。如果您還需要固定的I幀間隔,則還需要禁用scenecut檢測算法,例如對於I幀之間的固定50幀間隔,「-sc_threshold 0 -g 50」。使用足夠新的ffmpeg,您還可以使用-x264opts或-x264-params參數使用私有libx264選項。

所以對於完全固定幀類型的模式,你可以使用任何的以下命令行(它們應該相同):

ffmpeg -i $INFILE -c:v libx264 -b:v $BITRATE -sc_threshold 0 -g 50 -b_strategy 0 -bf 2 $OUTFILE

ffmpeg -i $INFILE -c:v libx264 -b:v $BITRATE -x264-params scenecut=0:keyint=50:b-adapt=0:bframes=2 $OUTFILE

+0

這是工作。非常感謝。 – PeanutStars