微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 举报,一经查实,本站将立刻删除。