Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。
想改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。
7年前关闭。
Improve this question
我正在通过RTP流使用gstreamer将mp4(mpeg-4)文件从一台设备传输到另一台设备。基本上,我将mp4文件拆分为音频和视频文件,然后将其全部发送到流式传输的其他设备。现在,我想将mp4文件保存到另一台设备的磁盘上,但是我的问题是我能够分别保存音频和视频文件,因此无法单独播放。
我对如何将音频和视频rtp流结合起来以形成我的mp4文件并将其保存到其他设备中的文件感到困惑。
以下是命令行代码:
发件人(服务器)
收件人(客户端)
想改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。
7年前关闭。
Improve this question
我正在通过RTP流使用gstreamer将mp4(mpeg-4)文件从一台设备传输到另一台设备。基本上,我将mp4文件拆分为音频和视频文件,然后将其全部发送到流式传输的其他设备。现在,我想将mp4文件保存到另一台设备的磁盘上,但是我的问题是我能够分别保存音频和视频文件,因此无法单独播放。
我对如何将音频和视频rtp流结合起来以形成我的mp4文件并将其保存到其他设备中的文件感到困惑。
以下是命令行代码:
发件人(服务器)
gst-launch-0.10 -v filesrc location=/home/kuber/Desktop/sample.mp4 \
! qtdemux name=d \
! queue \
! rtpmp4vpay \
! udpsink port=5000 \
d. \
! queue \
! rtpmp4gpay \
! udpsink port=5002
收件人(客户端)
gst-launch-0.10 udpsrc port=5000 caps = "application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)MP4V-ES, profile-level-id=(string)243, config=(string)000001b0f3000001b50ee040c0cf0000010000000120008440fa282fa0f0a21f, payload=(int)96, ssrc=(uint)4291479415, clock-base=(uint)4002140493, seqnum-base=(uint)57180" \
! rtpmp4vdepay \
! ffdec_mpeg4 \
! xvimagesink sync=false \
udpsrc port=5002 caps="application/x-rtp, media=(string)audio, clock-rate=(int)32000, encoding-name=(string)MPEG4-GENERIC, encoding-params=(string)2, streamtype=(string)5, profile-level-id=(string)2, mode=(string)AAC-hbr, config=(string)1290, sizelength=(string)13, indexlength=(string)3, indexdeltalength=(string)3, payload=(int)96, ssrc=(uint)501975200, clock-base=(uint)4248495069, seqnum-base=(uint)37039"\
! rtpmp4gdepay \
! faad \
! alsasink sync=false
最佳答案
您可以尝试以下管道将音频和视频混合到一个文件中。
管道如下:
gst-launch-0.10 udpsrc port=5000 caps = "application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)MP4V-ES, profile-level-id=(string)243, config=(string)000001b0f3000001b50ee040c0cf0000010000000120008440fa282fa0f0a21f, payload=(int)96, ssrc=(uint)4291479415, clock-base=(uint)4002140493, seqnum-base=(uint)57180" \
! rtpmp4vdepay \
! ffdec_mpeg4 \
! mux. \
udpsrc port=5002 caps="application/x-rtp, media=(string)audio, clock-rate=(int)32000, encoding-name=(string)MPEG4-GENERIC, encoding-params=(string)2, streamtype=(string)5, profile-level-id=(string)2, mode=(string)AAC-hbr, config=(string)1290, sizelength=(string)13, indexlength=(string)3, indexdeltalength=(string)3, payload=(int)96, ssrc=(uint)501975200, clock-base=(uint)4248495069, seqnum-base=(uint)37039"\
! rtpmp4gdepay \
! faad \
! mux.
matroskamux name=mux
! filesink location=video.mp4
08-16 10:30