GStreamer:将虚拟音轨添加到接收到的 rtp 流

GStreamer: Add dummy audio track to the received rtp stream

我正在使用以下方法从我的 Raspberry 相机启动 RTP 流:

raspivid -n -vf -fl -t 0 -w 640 -h 480 -b 1200000 -fps 20 -pf baseline -o - | gst-launch-1.0 -v fdsrc ! h264parse ! rtph264pay pt=96 config-interval=10 ! udpsink host=192.168.2.3 port=5000

在客户端站点上,我正在将其转换为 HLS 并将其上传到 Web 服务器:

gst-launch-1.0 udpsrc port=5000 ! application/x-rtp,payload=96 ! rtph264depay ! mpegtsmux ! hlssink max-files=5 target-duration=5 location=C:/xampp/htdocs/live/segment%%05d.ts playlist-location=C:/xampp/htdocs/live/playlist.m3u8

以上对我有用。另一方面,有些播放器不播放 HLS,因为它没有音轨。我想弄清楚如何添加虚拟音轨。我尝试了很多东西但没有运气,例如

gst-launch-1.0 udpsrc port=5000 ! application/x-rtp,payload=96 ! rtph264depay ! h264parse ! mux. audiotestsrc wave=4 freq=200 ! audioconvert ! queue ! mux. mpegtsmux name=mux ! hlssink max-files=5 target-duration=5 location=C:/xampp/htdocs/live/segment%%05d.ts playlist-location=C:/xampp/htdocs/live/playlist.m3u8

gst-launch-1.0 -e -v udpsrc port=5000 name=src ! application/x-rtp,payload=96 ! rtph264depay ! h264parse ! mpegtsmux name=mux ! audiotestsrc wave=silence src. ! audioconvert ! wavenc ! rtpmp4gdepay ! aacparse ! mux. ! hlssink max-files=5 target-duration=5 location=C:/xampp/htdocs/live/segment%%05d.ts playlist-location=C:/xampp/htdocs/live/playlist.m3u8

感谢任何帮助

您对这些管道有什么想法?这些看起来像是您正在尝试混合未压缩的音频数据。我不认为这是你想要的。我希望音频路径是这样的:

audiotestsrc wave=silence ! voaacenc ! aacparse ! mux.

请注意,可能有更具体的要求 - 例如您的 HLS 播放器支持的音频通道数或特定采样率。