android - Android 上的 WebRTC H.264 支持

标签 android webrtc h.264

我知道有很多关于它的文章,据我所知,如果是带有 h264 硬件编码器的 Qualcomm 设备,应该支持 H.264。

我很确定我的 Nexus 5X 符合要求,日志也证实了这一点:

I/org.webrtc.Logging: MediaCodecVideoEncoder: Found target encoder for mime video/avc : OMX.qcom.video.encoder.avc. Color: 0x15. Bitrate adjustment: NO_ADJUSTMENT

但它没有出现在 SDP 中:

m=video 9 UDP/TLS/RTP/SAVPF 96 98 100 127 97 99 101
a=rtpmap:96 VP8/90000
a=rtpmap:98 VP9/90000
a=rtpmap:100 red/90000
a=rtpmap:127 ulpfec/90000
a=rtpmap:97 rtx/90000
a=rtpmap:99 rtx/90000
a=rtpmap:101 rtx/90000

知道这是为什么吗?我该如何解决?政治/许可?我应该在构建过程中启用一些标志吗?

最佳答案

如果您在 Android 中使用基于 Chromium 的默认 WebView,则将不支持 H.264 解码和编码,因为默认情况下 Chromium 不使用 ffmpeg 构建。

但是,Chrome 确实支持 H.264。

因此,您可以冒险的一种方法是构建您自己的启用 ffmpeg 标志的 Chromium WebView,并将其与您的 apk bundle 在一起。

关于android - Android 上的 WebRTC H.264 支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44582456/

相关文章:

android - 通过 Intent 拒绝文件提供者的权限

未找到 Android Espresso fragment 根 ID

Android - 从 Surface/virtualDisplay 获取 byte[]

video - 将 mkv 转换为 h264 FFmpeg

java - 将用Java编写的.jar导入Android,noClassDefFoundError

Android app OOM(Out Of Memory)进程调整优先级

javascript - 在 FireFox 中修改 WebRTC 的 SDP 约束

javascript - 防止隐藏选项卡上的 Chrome 计时器以 1 秒分辨率运行

c - FFmpeg 不支持不同容器的比特率?

ffmpeg - 关于fmp4文件第一个mdat框的问题