2016-04-12 73 views
1

我是Gstreamer的新手。我正在嘗試使用gstreamer進行網絡流式傳輸。我可以使用下面的gst命令來實現這一點。它爲我工作很好。使用gstreamer在android手機中傳輸網絡內容

在發射機:gst-launch-1.0 -v filesrc location =/home/user/Downloads/big_buck_bunny_480p_h264.mov!解碼器! x264enc! rtph264pay! udpsink host = 127.0.0.1 port = 5000

at receiver:gst-launch-1.0 -v udpsrc port = 5000 caps =「application/x-rtp,media =(string)video,clock-rate =(int) 90000,encoding-name =(string)H264,payload =(int)96「! rtph264depay!解碼器! videoconvert! autovideosink

在這裏,我使用相同的Ubuntu PC發送和接收視頻。

但現在我想在我的android手機上播放收到的視頻,而不是Ubuntu的PC。我的意思是Ubuntu的PC應該充當發射器和Android手機作爲接收器。有什麼辦法可以做到這一點?

android手機連接到網絡10.xx.yy.zz。 (Android手機和Ubuntu PC在同一個局域網中)所以我把發送器的udpsink主機改爲10.xx.yy.zz。現在我期待視頻在Android設備上播放。但它沒有。我發現了以下在發射機和接收機側

日誌消息在發送器: /GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0.GstPad:sink:蓋=視頻/ X-H264,codec_data =(緩衝液)0164001effe1001a6764001eacd940d83de6f011000003000100000300308f162d9601000568ebecb22c ,stream-format =(string)avc,alignment =(string)au,level =(string)3,profile =(string)high,width =(int)854,height =(int)480,pixel-aspect-ratio =(分數)1/1,幀率=(分數)24/1 /GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0:時間戳= 456403579 /GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0:SEQNUM = 50171 管道被預卷... 設置管道打... 新的時鐘:GstSystemClock

在接收器: (串)H264,有效載荷=(INT)96" ! rtph264depay!解碼器! videoconvert! autopideosink 將管道設置爲PAUSED ... /GstPipeline:pipeline0/GstUDPSrc:udpsrc0.GstPad:src:caps = application/x-rtp,media =(string)video,clock-rate =(int)90000,encoding-name =(string)H264,payload =(int)96 /GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0.GstPad:sink:caps = application/x-rtp,media =(string)video,clock-rate =(int)90000,編碼名稱=(字符串)H264,有效載荷=(INT)96 管道是活的,不需要PREROLL ... 設置管道玩.... 新的時鐘:GstSystemClock

請幫助。提前致謝。

回答

0

對於android你可以使用vlc ..也許你需要這個流的sdp文件,就像這個問題 - check comments

或者你可以通過使用mpegtsmux來做到這一點,就像在this答案..在vlc上,你會然後去「打開直播流」,並把那裏udp:// @:5000(其中5000是你的端口在發件人管道中使用)

對於IP問題 - 如果它在與Ubuntu PC相同的局域網上是的,它會工作(如果不是編輯你的問題的細節)。

你可以嘗試與另一臺PC(而不是android)和vlc - 使用mpegtsmux,如上所述。

+0

嗨otopolsky,根據你的建議,我想用SDP來實現這個。 SDP是我的新主題:(我在網上查過,但找不到有說服力的解決方案來完成SDP設置。如果您有關於SDP文件設置的任何信息,您可以與我分享嗎? 關於IP問題 - 是PC(發送器)和android手機(接收器)是離子相同的局域網,我將udpsink主機改爲10.xx.yy.zz(android手機的IP),但在手機端沒有觀察到任何活動 發射機終端顯示並暫停: 管道是PREROLLED。 設置piepline播放 新時鐘:GstSystemClock – deepu

+0

@deepu你想通了嗎?我忘了回答這個評論,你只是創建sdp文件也許類似[這個問題](http:// stackoverflow .com/a/13234988/3876138),然後以某種方式將其傳遞給vlc ..我不知道如何在android版本的vlc上做到這一點。 – nayana

相關問題