使用 ffmpeg 将 RTSP 流录制到两个不同分辨率的输出,同时根据时间对视频进行分段

使用 ffmpeg 将 RTSP 流录制到两个不同分辨率的输出,同时根据时间对视频进行分段

我需要以两种不同的分辨率(原始分辨率和较低分辨率)从 RTSP 录制。我还需要将文件按照每 30 分钟的时钟时间拆分,例如 1:00、1:30、2:00 等。

我想象命令看起来会是这样的。

ffmpeg -rtsp_transport tcp -i rtsp://<rtsp url> \
  -filter_complex "[0:v]split=2[v1][v2];[v1]scale=1920:1080[out1];[v2]scale=448:252[out2]" \
  -map "[out1]" \
  -c:v -an -vcodec libx264 \
  -f segment -segment_format mp4 -segment_time 00:30:00 -strftime 1 \ 
  /mnt/data/original-%Y-%m-%d-%H.%M.%S.mp4 \
  -map "[out2]" \
  -c:v -an -vcodec libx264 \
  -f segment -segment_format mp4 -segment_time 00:30:00 -strftime 1 \ 
  /mnt/data/low-reso-%Y-%m-%d-%H.%M.%S.mp4 \

当然,这不起作用。上面的命令给了我这个错误。

[NULL @ 0x556c999c2140] Unable to find a suitable output format for 'segment'
segment: Invalid argument

我尝试过多次调整这个命令,但都失败了。有人知道怎么做吗?

相关内容