2013-07-26 4 views
2

Я пытаюсь передать видео mpeg2-ts через RTP с помощью gstreamer. Я использую следующий трубопровод для сервера:Потоковая передача видео mpeg2-ts через RTP с использованием gstreamer

gst-launch-0.10 -v filesrc location=/home/…/miracast_sample.mpeg ! rtpmp2tpay ! udpsink host=localhost port=5000 sync=false 

Проблема, что я обращенную в том, что я получаю непосредственно событие EOS, как описано ниже:

Setting pipeline to PAUSED ... 
Pipeline is PREROLLING ... 
/GstPipeline:pipeline0/GstRTPMP2TPay:rtpmp2tpay0: timestamp = 3878456990 
/GstPipeline:pipeline0/GstRTPMP2TPay:rtpmp2tpay0: seqnum = 50764 
Pipeline is PREROLLED ... 
Setting pipeline to PLAYING ... 
New clock: GstSystemClock 
Got EOS from element "pipeline0". 
Execution ended after 126835285 ns. 
Setting pipeline to PAUSED ... 
Setting pipeline to READY ... 
Setting pipeline to NULL ... 
Freeing pipeline ... 

Я могу понять, что она работает очень быстро, но как его исправить?

+0

Вы попали куда-нибудь? – Russell

ответ

0

Вы установили sync = FALSE, и это означает, что «не синхронизировать по меткам времени, а обрабатывать буфер как можно быстрее». Попробуйте изменить его в TRUE, например, так:

gst-launch-0.10 -v filesrc location=/home/…/miracast_sample.mpeg ! rtpmp2tpay ! udpsink host=localhost port=5000 sync=1 
+0

такое же поведение с синхронизацией = 1 и даже без синхронизации вообще – abir

-1

Вы пытались демультиплексируете его, а затем мультиплексировать его ...

, такие как:

сервер:

gst-launch-0.10 -v filesrc location=file_to_stream.ts ! tsdemux program-number=811 ! mpegtsmux ! rtpmp2tpay ! udpsink host=localhost port=5000 sync=1 

клиент:

gst-launch-0.10 udpsrc port=5000 caps="application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)MP2T-ES" ! gstrtpbin ! rtpmp2tdepay ! tsdemux ! mpeg2dec ! ffmpegcolorspace ! autovideosink 
0

У меня был тот же проблема, поскольку вы и мой коллега предложили мне вставить tsparse set-timestamps=true между файлами и rtpmp2tpay. Это сработало для меня, поэтому попробуйте изменить свой трубопровод на

gst-launch-0.10 -v filesrc location=/home/…/miracast_sample.mpeg ! \ 
    tsparse set-timestamps=true ! rtpmp2tpay ! udpsink host=localhost port=5000 sync=false