Ich streame eine mp4 (mpeg-4) -Datei von einem Gerät zu einem anderen mit gstreamer über RTP-Stream. Im Grunde teile ich die mp4-Datei in ihre Audio- und Videodatei auf und sende sie dann an das andere Gerät, wo sie gestreamt wird. Jetzt möchte ich die mp4-Datei auf dem anderen Gerät auf der Festplatte speichern, aber mein Problem ist, dass ich die Audio- und Videodateien getrennt speichern kann und es nicht einzeln abgespielt werden kann.Kombinieren eines Audio- und Video-Streams mit gstreamer
Ich bin verwirrt darüber, wie die Audio- und Video-RTP-Streams kombinieren, um meine mp4-Datei zurück zu bilden und speichern Sie es in eine Datei in dem anderen Gerät.
Hier sind die Befehlszeilencode:
Sender (Server)
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
Reciever (Client)
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
eine Lösung, die ich dachte, war der Encoder im Empfänger und den Absender nämlich zu entfernen: rtpmp4gpay und rtpmp4gdepay und faad. Dies würde dazu führen, dass die Audio- und Videodatei statt der codierten Streams streamt und dann im Empfänger qtmux verwendet wird, um sowohl den Audio- als auch den Videostream zusammenzuführen, aber ich bekomme Fehler bei der Inkompatibilität von qtmux mit udpsrc. Wo genau sollte ich diese Änderung vornehmen? – user1795516
@ av501 ........ – user1795516
gst-launch-0.10 udpsrc port = 5000 caps = "anwendung/x-rtp, media = (string) video, taktfrequenz = (int) 90000, codierungsname = (String) MP4V-ES, Profil-Ebene-ID = (Zeichenfolge) 243, Konfig = (Zeichenfolge) 000001b0f3000001b50ee040c0cf0000010000000120008440fa282fa0f0a21f, Nutzlast = (Int) 96, ssrc = (Uint) 4291479415, Taktbasis = (Uint) 4002140493, Seqnum- Basis = (Uint) 57180 "! rtpmp4vdepay! Warteschlange ! qtmux name = muxer udpsrc port = 5002 caps = "anwendung/x-rtp, media = (string) audio, taktfrequenz = (int) 32000, codierungsname = (string) MPEG4-GENERIC, encoding-params = (string) 2, – user1795516