[英]Decoding an RTP stream with H264 data on Android Using MediaCodec
[英]GStreamer pipeline issues for Android using RTP and h264
我正在使用 GStreamer 開發一個 Android 應用程序,我的管道在接收視頻 stream 時遇到了一些問題。我從 GStreamer 開始,這就是為什么我使用Tutorial 3 for Android並嘗試修改盡可能少的代碼盡可能因為我不掌握它。
小結:我的服務器使用GStreamer來管理視頻stream,並通過RTP將視頻stream發送到我的Android設備。 視頻是用h264編碼的。 stream 在 Windows 上接收成功,但在 Android 上接收不到,這是我的問題。
用於 Windows powershell 的管道接收視頻 stream(有效):
.\gst-launch-1.0.exe -v udpsrc port=5000 ! "application/x-rtp,clock-rate=(int)90000,payload=(int)96" ! rtph264depay ! avdec_h264 ! fpsdisplaysink sync=false text-overlay=true
Android 應用程序上使用的管道(不起作用):
udpsrc port=5000 caps="application/x-rtp,clock-rate=90000,payload=96" ! rtph264depay ! avdec_h264 ! glimagesink
我嘗試了很多視頻接收器,但遇到了錯誤:
Error received from element udpsrc0: could not open resource for reading
顯示在設備屏幕上,當我在信息日志中搜索時,我看到... gst_udpsrc_open:<udpsrc0> error: no socket error: Unable to create socket: Permission denied
... /tutorial-3.c:202:app_function Could not retrieve video sink
。 也許這個錯誤有更高的優先級? 但是所有這些視頻接收器都使用默認管道( videotestsrc ! warptv ! videoconvert ! autovideosink
),這就是為什么我真的不明白錯誤的來源。
如果有人對如何檢測問題的根源或如何解決問題有想法,我很感興趣。 如果我不清楚,請不要猶豫問我。 謝謝 !
我發現了我的錯誤並且很容易修復它:我的管道是正確的,我忘記了 Inte.net 權限所以我只是將這一行添加到 AndroidManifest.xml 文件中:
<uses-permission android:name="android.permission.INTERNET"/>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.