将MJPEG RTSP流拆分为多个文件- GSTREAMER



我有一个Xavier AGX开发工具包和x4 AGX,我希望复制这个管道。我正在为_my_ip_address:8554/test提供RTSP流。我可以在其他电脑和VLC上看到它,没问题。流本身是MJPEG。我没有使用h264,因为我的相机可以使用mjpeg获得更好的质量和更高的fps。

我明确的意图/问题陈述;我想把一个MJPEG RTSP流从gstreamer分割成我的客户端上的分段mp4s。间隔长度并不重要,只是具体的命令是我所缺少的。

我可以在其他计算机上使用ffmpeg将实时rtsp流分割成块,使用;

ffmpeg -rtsp_transport tcp -i rtsp://10.42.0.1:8554/test -c copy -f segment -segment_time 600 /home/miles/Documents/line_1_%d.mp4

(如何在堆栈上格式化代码段?)

管道正在从python/gstreamer的xavier端启动。由于某些原因,在我的ubuntu机器上使用python不工作。我安装了支持gstreamer的opencv,它正在寻找正确的python路径。

我可以导入gi等,但我不能在我的ubuntu机器上的opencv中播放视频。如果有人能帮我解决这个问题…这很好,但不是主要问题。我很高兴使用命令行来解决问题,但我的想法是首先尝试使用gstreamer在python中获取流,然后在python中执行多文件工作....我在这上面花了很多时间,但是毫无效果。所以,我切换到ffmpeg,这似乎更容易找到解决方案。

import操作系统os.system("ffmpeg -rtsp_transport tcp -i rtsp://10.42.0.1:8554/test -c copy -f segment -segment_time 600/home/英里/documents/line_1_% d.p 4")

似乎我应该能够使用gstreamer来做到这一点....但我不知道mjpeg的部分。例如,我发现了一个使用splitmuxsink....

的示例
gst-launch-1.0 rtspsrc location=rtsp://10.82.131.240:8554/h264ESVideoTest ! rtph264depay ! h264parse ! splitmuxsink location=file%02d.mp4 max-size-time=10000000000 

期望是h264,而不是mjpeg。

有人知道如何在gstreamer中做到这一点吗?否则我有一个捆绑在一起的管道。

看上面,我没有意识到它分为两个部分。

不幸的是,似乎MP4中的JPEG在GStreamer中没有实现。不过你也可以换成Matroska。从您的示例中调整的管道应该是这样的:

gst-launch-1.0 rtspsrc location=rtsp://10.82.131.240:8554/h264ESVideoTest ! rtpjpegdepay ! splitmuxsink location=file%02d.mkv muxer=matroskamux max-size-time=10000000000

最新更新