使用 ffmpeg 从视频的特定时间流式传输 mp4 文件

使用 ffmpeg 从视频的特定时间流式传输 mp4 文件

我想从不同的开始时间流式传输视频文件(.mp4)。

为了例子我想从视频的test.mkv分钟开始流式传输文件。因此,当我将其流式传输到 rtmp 服务器时,视频是从电影开始的,而不是从开始的。 00:02:30test.mkv00: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论点之前。

相关内容