我想要從不同的開始時間串流影片檔案 (.mp4)。
為了例子我想像影片一樣從一分鐘開始串流test.mkv
文件。因此,當我將其串流到 rtmp 伺服器時,視訊是從電影開始的,而不是從開始的。
00:02:30
test.mkv
00:02:30
筆記:我不想等那麼久,我想從我按ffmpeg
命令輸入後的那一刻開始,所以像使用這樣的答案cronjob
沒有用。
這是ffmpeg
我正在使用的命令:
ffmpeg -i test.mkv -pix_fmt yuv420p -vsync 1 -threads 0 -vcodec libx264 -r 30 -g 60 -sc_threshold 0 -b:v 512k -bufsize 640k -maxrate 640k -preset veryfast -profile:v baseline -tune film -acodec aac -b:a 128k -ac 2 -ar 48000 -af "aresample=async=1:min_hard_comp=0.100000:first_pts=0" -bsf:v h264_mp4toannexb -f flv rtmp://test.server.com
筆記:
如果你們有任何關於改進ffmpeg
命令的建議,我也很感激。
答案1
看起來標誌是,-ss
但不知怎的,有一個小提示,所以它可以工作。它應該放在任何-i
起作用的參數之前。很簡單,只需添加例如-ss 150
它將從視頻開始後 150 秒開始。所以上面的命令會是這樣的:
ffmpeg -ss 150 -i test.mkv -pix_fmt yuv420p -vsync 1 -threads 0 -vcodec libx264 -r 30 -g 60 -sc_threshold 0 -b:v 512k -bufsize 640k -maxrate 640k -preset veryfast -profile:v baseline -tune film -acodec aac -b:a 128k -ac 2 -ar 48000 -af "aresample=async=1:min_hard_comp=0.100000:first_pts=0" -bsf:v h264_mp4toannexb -f flv rtmp://test.server.com
筆記:
放在-ss
任何參數之前-i
。