В сборке Chrome используется openh264, который не используется обычным ** WebRTC .Под обычным я подразумевал, что есть вариант с программным обеспечением h.264 из сборки Chrome, который вы можете использовать, но я бы не рекомендовал его.
На Android WebRTC H.264 поддерживается только в том случае, если аппаратное обеспечение устройства
- поддерживается, а логика склеивания аппаратного кодировщика аппаратного кодера WebRTC И
- этот аппаратный кодировщик.В настоящее время поддерживаются только устройства QCOM и EXYNOS .Таким образом, любые другие устройства, даже если они поддерживают H.264 HW-кодировщик, не будут использоваться и не будут добавлены как часть фабрики кодеков, и вы не увидите в SDP, сгенерированном из примеров приложений WebRTC.
На уровне Java вы можете видеть это в HardwareVideoEncoderFactory.java
, который проверяет устройства QCOM и EXYNOS в функции isHardwareSupportedInCurrentSdkH264
.
Интересно, что если вы используете собственный код, дажеАппаратные кодировщики QCOM и EXYNOS не поддерживаются (на трекере ошибок Webrtc имеется ошибка).Это из-за тесной интеграции кода кодирования HW с кодом JNI - определенно не очень хороший модульный код.