webrtc支持H264编码和解码

相关代码:

/root/Projects/webrtc-checkout/src/pc/media_session.cc

/root/Projects/webrtc-checkout/src/media/engine/internal_encoder_factory.cc

/root/Projects/webrtc-checkout/src/pc/sdp_offer_answer.cc

修改文件:

/root/Projects/webrtc-checkout/src/third_party/ffmpeg/chromium/config/Chrome/android/arm64/libavcodec/parser_list.c

/root/Projects/webrtc-checkout/src/third_party/ffmpeg/chromium/config/Chrome/android/arm64/libavcodec/codec_list.c

/root/Projects/webrtc-checkout/src/third_party/ffmpeg/chromium/config/Chrome/android/arm64/config.h

ld.lld: error: undefined symbol: ff_h264_decoder
>>> referenced by allcodecs.c:848 (../../third_party/ffmpeg/libavcodec/allcodecs.c:848)
>>>               ffmpeg_internal/allcodecs.o:(av_codec_init_static) in archive obj/third_party/ffmpeg/libffmpeg_internal.a
>>> referenced by allcodecs.c:848 (../../third_party/ffmpeg/libavcodec/allcodecs.c:848)
>>>               ffmpeg_internal/allcodecs.o:(av_codec_init_static) in archive obj/third_party/ffmpeg/libffmpeg_internal.a
>>> referenced by allcodecs.c:849 (../../third_party/ffmpeg/libavcodec/allcodecs.c:849)
>>>               ffmpeg_internal/allcodecs.o:(av_codec_init_static) in archive obj/third_party/ffmpeg/libffmpeg_internal.a
>>> referenced 10 more times

ld.lld: error: undefined symbol: ff_h264_parser
>>> referenced by parsers.c:87 (../../third_party/ffmpeg/libavcodec/parsers.c:87)
>>>               ffmpeg_internal/parsers.o:(av_parser_init_next) in archive obj/third_party/ffmpeg/libffmpeg_internal.a
>>> referenced by parsers.c:87 (../../third_party/ffmpeg/libavcodec/parsers.c:87)
>>>               ffmpeg_internal/parsers.o:(av_parser_init_next) in archive obj/third_party/ffmpeg/libffmpeg_internal.a
>>> referenced by parsers.c
>>>               ffmpeg_internal/parsers.o:(parser_list) in archive obj/third_party/ffmpeg/libffmpeg_internal.a

ld.lld: error: undefined symbol: avpriv_h264_has_num_reorder_frames
>>> referenced by utils.c:1001 (../../third_party/ffmpeg/libavformat/utils.c:1001)
>>>               ffmpeg_internal/autorename_libavformat_utils.o:(avformat_find_stream_info) in archive obj/third_party/ffmpeg/libffmpeg_internal.a
>>> referenced by utils.c:1001 (../../third_party/ffmpeg/libavformat/utils.c:1001)
>>>               ffmpeg_internal/autorename_libavformat_utils.o:(try_decode_frame) in archive obj/third_party/ffmpeg/libffmpeg_internal.a
>>> referenced by utils.c:1001 (../../third_party/ffmpeg/libavformat/utils.c:1001)
>>>               ffmpeg_internal/autorename_libavformat_utils.o:(compute_pkt_fields) in archive obj/third_party/ffmpeg/libffmpeg_internal.a
>>> referenced 1 more times
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.

修改:

/root/Projects/webrtc-checkout/src/third_party/ffmpeg/ffmpeg_generated.gni

use_linux_config = is_linux || is_chromeos || is_fuchsia

==>

use_linux_config = is_linux || is_chromeos || is_fuchsia || is_android

可能要修改 /root/Projects/webrtc-checkout/src/third_party/ffmpeg/chromium/scripts/build_ffmpeg.py

  configure_flags['ChromeAndroid'].extend([
      '--enable-demuxer=aac',
      '--enable-parser=aac',
      '--enable-decoder=aac',

=====>

  configure_flags['ChromeAndroid'].extend([
      '--enable-demuxer=aac',
      '--enable-parser=aac',
      '--enable-decoder=aac',
      '--enable-demuxer=h264',
      '--enable-parser=h264',
      '--enable-decoder=h264',
      '--enable-demuxer=hevc',
      '--enable-parser=hevc',
      '--enable-decoder=hevc',

# Set build arguments here. See `gn help buildargs`.
clang_use_chrome_plugins=false
fatal_linker_warnings=false
is_component_build=false
is_debug=true
target_cpu="arm64"
target_os="android"
symbol_level = 2
libcxx_abi_unstable = false
rtc_use_h264 = true
use_rtti = true
android32_ndk_api_level=21
rtc_exclude_field_trial_default=true
android_full_debug=true
strip_debug_info=false
rtc_build_examples=true
use_allocator_shim=true
rtc_include_tests=false
treat_warnings_as_errors=false
is_chrome_branded=true
proprietary_codecs = true
ffmpeg_branding="Chrome"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值