2012-12-16 14 views
7

Sto trasmettendo un file mp4 (mpeg-4) da un dispositivo a un altro utilizzando gstreamer sul flusso RTP. Fondamentalmente sto suddividendo il file mp4 nel suo file audio e video e poi inviandolo tutto sull'altro dispositivo dove viene trasmesso in streaming. Ora, voglio salvare il file mp4 su disco nell'altro dispositivo, ma il mio problema è che sono in grado di salvare i file audio e video separatamente e non può essere riprodotto singolarmente.Combinazione di un flusso audio e video utilizzando gstreamer

Sono confuso su come combinare sia i flussi audio e video rtp per formare il mio file mp4 indietro e salvarlo su un file nell'altro dispositivo.

Ecco i codici di linea di comando:

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 

Receiver (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 
+0

una soluzione che ho pensato era di eliminare il codificatore nel ricevitore e il mittente e cioè: rtpmp4gpay e rtpmp4gdepay e faad. ciò comporterebbe lo streaming del file audio e video invece dei flussi codificati e quindi l'uso di qtmux nel ricevitore per unire sia lo streaming audio che video, ma ricevo errori sull'incompatibilità di qtmux con udpsrc. Dove dovrei esattamente fare quel cambiamento? – user1795516

+0

@ av501 ........ – user1795516

+0

gst-launch-0.10 porta udpsrc = 5000 caps = "application/x-rtp, media = (stringa) video, clock-rate = (int) 90000, nome-codifica = (stringa) MP4V-ES, profile-level-id = (stringa) 243, config = (stringa) 000001b0f3000001b50ee040c0cf0000010000000120008440fa282fa0f0a21f, payload = (int) 96, ssrc = (uint) 4291479415, clock-base = (uint) 4002140493, seqnum- base = (uint) 57180 "! rtpmp4vdepay! coda ! qtmux name = muxer udpsrc port = 5002 caps = "application/x-rtp, media = (string) audio, clock-rate = (int) 32000, encoding-name = (stringa) MPEG4-GENERIC, encoding-params = (stringa) 2, – user1795516

risposta

1

È possibile provare il seguente pipeline per mux audio e video in un singolo file. Pipeline di ciò è la seguente:

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 
+0

non riesco a creare una pipeline da questo syntex –