android - 在 Android 上通过 RTP 从 GStreamer 接收视频流
问题描述
我想创建一个Android 应用程序,它通过RTP以低延迟接收来自GStreamer的视频流,例如安全摄像头应用程序。我是 GStreamer 和 Android 的初学者。视频使用h264编码。
为此,我有几个想法:
- 使用 ExoPlayer2,但我不确定是否可以添加特定选项以与 gstreamer 流兼容。
- 使用 GStreamer for Android,但它对初学者不友好。
我尝试读取视频流,它在 Windows 上使用 VLC 成功,并带有这样的 sdp 文件:
v=0
m=video 5000 RTP/AVP 96
c=IN IP4 127.0.0.1
a=rtpmap:96 H264/90000
但是由于缓冲区,延迟很高。
多亏了这个命令行,GStreamer 成功了:.\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
在带有 QGroundControl(使用 GStreamer)的 Android 上,延迟很高。
我按照教程使用 ExoPlayer2 阅读视频,但我没有设法阅读视频流。
我尝试按照 GStreamer Android 教程进行操作,但是我的印象是该教程已经过时并且只允许显示视频而不是视频流(如果我错了,请告诉我)。
我很困惑,我的所有研究结果都是旧的(超过 5 年),我认为实现我的应用程序的技术已经发展(至少我希望如此)。
请帮助我找到一种遵循的方法。
此致。
解决方案
推荐阅读
- apache-spark - 使用 PySpark 从字符串中获取倒数第二个单词
- python - Convert string byte to byte like b'\x00\x01\x02'
- android - Xamarin Android 从存档/apk 中排除文件
- reactjs - Onclick事件目标冒泡给孩子?
- c# - 删除 GridControl 和数据库中的多个选定行?
- swift - 不添加 UISearchController
- c - 玩家与地板碰撞时不会移动
- save - Slurm:不完整的作业状态保存文件,以'-i'开头忽略此
- javascript - 如何在 React 中按状态数组过滤数据对象?
- python - Django如何解决保存空表单问题?