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