gstreamer:无需转码即可从 mp4 文件中创建 rtp 流

问题描述

我想用 gstreamer 创建一个 mp4 文件的 RTP 流。 我在 debian bullseye 上使用 gstreamer 1.18.4。

为了创建一个 mp4 文件,我使用以下命令从我的网络摄像头录制了一个 RTSP 流:

gst-launch-1.0 -e rtspsrc location="rtsp://192.168.111.146/axis-media/media.amp" port-range=28000-38000 buffer-mode=0 latency=80 ! rtph264depay ! h264parse ! mp4mux ! filesink location=filename.mp4

录制文件 filename.mp4 后,我尝试使用 RTP 流式传输它:

gst-launch-1.0 filesrc location=filename.mp4 ! qtdemux ! h264parse ! avdec_h264 ! x264enc ! h264parse ! rtph264pay ! udpsink port=50000 host=127.0.0.1

并且可以在同一台机器上使用以下命令开始播放流:

gst-launch-1.0 udpsrc address=127.0.0.1 port=50000 auto-multicast=true ! application/x-rtp,encoding-name=H264,payload=96 ! rtph264depay ! avdec_h264 ! autovideosink

一切都按预期进行!

但是由于我不想对文件进行转码,所以我只想跳过解码和编码部分。因此,我创建了以下管道:

gst-launch-1.0 filesrc location=filename.mp4 ! qtdemux ! h264parse ! rtph264pay ! udpsink port=50000 host=127.0.0.1

gst-launch-1.0 filesrc location=filename.mp4 ! qtdemux ! rtph264pay ! udpsink port=50000 host=127.0.0.1

但是,如果我在两个管道上重试播放管道(带有 udpsrc 的管道),则不会显示流。 有趣的是,nload 显示lo 上的网络流量。 流媒体管道有什么问题? 我错过了中间的一些神奇插件吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)