【问题标题】:How to get GStreamer for Windows and for Android work together with h264 over RTP?如何让 Windows 和 Android 的 GStreamer 通过 RTP 与 h264 一起工作?
【发布时间】:2013-04-26 14:13:20
【问题描述】:

我的目标是捕获视频,使用 x264 对其进行编码,通过 RTP 流式传输,在 Android 上接收,解码并以尽可能低的延迟显示。 编码器/发送器机器是安装了 OSS 构建“GStreamer-WinBuilds-GPL-x86-Beta04-0.10.7.msi”的 Windows 7(于 03.2011 发布)。它愉快地运行如下所示的捕获/编码/流管道:

gst-launch.exe -v ksvideosrc device-index=0 !视频速率!视频/x-raw-yuv,宽度=320,高度=240,帧率=30/1! ffmpeg色彩空间! x264enc 调=零延迟! rtph264pay! udpsink 主机=127.0.0.1 端口=5400

我已经使用在同一台机器上运行的客户端管道测试了流:

gst-launch.exe udpsrc port=5400 caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, payload=(int )96" ! gstrtpjitterbuffer ! rtph264depay! h264解析! ffdec_h264 ! ffmpeg色彩空间!视频缩放! “视频/x-raw-yuv,宽度=320,高度=240”!自动视频接收器

而且演奏得非常好。

我已经成功构建了一个基于 GStreamer 的 Android 应用程序,我可以构建自定义 pipilene 并在 Android 上运行它们。但是当我流式传输到我的手机 IP 并在 Android 上运行相同的接收器管道时,我会看到无法观看的残缺视频,质量非常低,画面上到处都是块和伪影。

Android 的 GStreamer SDK 版本为:http://cdn.gstreamer.com/android/arm/gstreamer-sdk-android-arm-debug-2012.11.zip 看起来它是一个较新的版本。

所以我决定在我的 Windows 7 机器上安装相同版本的 GStreamer SDK:http://cdn.gstreamer.com/windows/x86-64/gstreamer-sdk-x86_64-2012.11.msi

现在,当我在具有较旧 OSS 构建的 Windows 上运行发送器管道和具有较新 SDK 构建的接收器管道时,我得到了与在 Android 上相同的效果:显示视频但已损坏。 我无法使用较新的 SDK 作为发送方在 Windows 上对其进行测试,因为新的 SDK 不包含任何编码器,而且我不清楚如何添加任何编码器。

所以问题是:如何获得在 Windows 上作为编码器和在 Android 上作为接收器运行的相同版本的 GStreamer?

【问题讨论】:

    标签: android windows h.264 gstreamer


    【解决方案1】:

    您是否尝试过更新到 SDK 2013.6?似乎它修复了一些错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-20
      • 1970-01-01
      • 1970-01-01
      • 2014-01-04
      • 1970-01-01
      • 2012-07-30
      • 1970-01-01
      相关资源
      最近更新 更多