首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将多个RTSP流记录到单个文件中

将多个RTSP流记录到单个文件中
EN

Stack Overflow用户
提问于 2019-12-13 17:58:27
回答 1查看 1.4K关注 0票数 3

我需要将4个RTSP流记录到一个文件中。

视频流必须这样放入视频中:

代码语言:javascript
复制
 ---------- ---------- 
|          |          |
| STREAM 1 | STREAM 2 |
|          |          |
|----------|----------|
|          |          |
| STREAM 3 | STREAM 4 |
|          |          |
 ---------- ----------

我需要以大约1秒的精度同步这些实时流。这是具有挑战性的,因为流具有可变帧率(FPS)。

我已经尝试过ffmpeg,但是流不同步。代码如下:

代码语言:javascript
复制
ffmpeg \
  -i "rtsp://IP-ADDRESS/cam/realmonitor?channel=1&subtype=00" \
  -i "rtsp://IP-ADDRESS/live?real_stream" \
  -i "rtsp://IP-ADDRESS/live?real_stream" \
  -i "rtsp://IP-ADDRESS/live?real_stream" \
  -filter_complex " \
    nullsrc=size=1920x1080 [base]; \
    [0:v] scale=960x540 [video0]; \
    [1:v] scale=960x540 [video1]; \
    [2:v] scale=960x540 [video2]; \
    [3:v] scale=960x540 [video3]; \
    [base][video0] overlay=shortest=1:x=0:y=0 [tmp1]; \
    [tmp1][video1] overlay=shortest=0:x=960:y=0 [tmp2]; \
    [tmp2][video2] overlay=shortest=0:x=0:y=540 [tmp3]; \
    [tmp3][video3] overlay=shortest=0:x=960:y=540 [v]; \
    [0:a]amix=inputs=1[a]" \
  -map "[v]" -map "[a]" -c:v h264 videos/test-combine-cams.mp4

有没有一种方法可以在ffmpeg中组合和同步流,或者使用其他实用程序,如:vlcopenRTSPOpenCV

EN

回答 1

Stack Overflow用户

发布于 2019-12-13 22:02:23

你有没有试过gstreamer,它可以和我的rtsp流一起工作。

代码语言:javascript
复制
gst-launch-1.0 -e rtspsrc location=rtsp_url1 ! rtph264depay ! h264parse ! decodebin ! videoconvert ! m.sink_0 \
               rtspsrc location=rtsp_url2 ! rtph264depay ! h264parse ! decodebin ! videoconvert ! m.sink_1 \
               rtspsrc location=rtsp_url3 ! rtph264depay ! h264parse ! decodebin ! videoconvert ! m.sink_2 \
               rtspsrc location=rtsp_url4 ! rtph264depay ! h264parse ! decodebin ! videoconvert ! m.sink_3 \
               videomixer name=m sink_1::xpos=1280 sink_2::ypos=720 sink_3::xpos=1280 sink_3::ypos=720 ! x264enc ! mp4mux ! filesink location=./out.mp4 sync=true

当然,您需要添加您的rtsp urls,并根据您的视频大小(我的是720p)调整videomixer xpos/ypos属性。

在混合之前,您可能希望一次只运行一个,以确保正确安装了所有依赖项

gst-launch-1.0 rtspsrc location=rtsp_url1 ! rtph264depay ! h264parse ! decodebin ! x264enc ! mp4mux ! filesink location=./out.mp4 sync=true

我还没有添加音频。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59320085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档