簡體   English   中英

使用 RTP 和 h264 的 Android 的 GStreamer 管道問題

[英]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

我嘗試了很多視頻接收器,但遇到了錯誤:

  • 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
  • autovideosink:我在信息日志中看到與以前相同的錯誤,但未顯示屏幕上的錯誤消息,錯誤日志中出現錯誤: ... /tutorial-3.c:202:app_function Could not retrieve video sink 也許這個錯誤有更高的優先級?
  • fpsdisplaysink:與 autovideosink 相同。

但是所有這些視頻接收器都使用默認管道( videotestsrc ! warptv ! videoconvert ! autovideosink ),這就是為什么我真的不明白錯誤的來源。

如果有人對如何檢測問題的根源或如何解決問題有想法,我很感興趣。 如果我不清楚,請不要猶豫問我。 謝謝 !

我發現了我的錯誤並且很容易修復它:我的管道是正確的,我忘記了 Inte.net 權限所以我只是將這一行添加到 AndroidManifest.xml 文件中:

<uses-permission android:name="android.permission.INTERNET"/>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM