我想从不同的开始时间流式传输视频文件(.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
论点之前。