TSINGSEE青犀视频现阶段做的webrtc开发已经进入了下一个阶段,当音视频推流都已经测试完成后,我们开始了研究ffmpeg的道路。
FFmpeg在Linux平台下开发,但它同样也可以在其它操作系统环境中编译运行,包括Windows、Mac OSX等。ffmpeg视频采集功能非常强大,不仅可以采集视频采集卡或USB摄像头的图像,还可以进行屏幕录制,同时还支持以RTP方式将视频流传送给支持RTSP的流媒体服务器,支持直播应用。
我们在webrtc中使用ffmpeg,出现获取版本为“ffmpeg version: N-94448-G3CEA9CD219”的提示,而不是出现xxx.xxx.xxx版本号
使用ffmpeg avcodec_configuration这个函数,出现的是null,而不是加载配置项。
一般情况下,在webrtc中使用ffmpeg报错可能有如下原因:
(1)没有找到ffmpeg库
(2)webrtc没有打包成共享库
(3)共享库的优先级问题
(4)webrtc打包错误
因此在排查中我们检查了参数列表,找到is_component_ffmpeg这个参数的说明,这个参数有助于用自己的ffmpeg库,而不是用webrtc构建的工具库。
完整的gn参数如下所示:
gn gen out/Debug --ide=vs2017 --args=“is_debug=true target_cpu=“x86” is_clang=false is_component_ffmpeg=true”
可以看到参数中is_component_ffmpeg设置为false,但是此处的参数应该为true,才能将ffmpeg构建为共享库。
通过完整的gn参数再次打包webrtc,运行结果如下:
问题得以解决,看到了ffmpeg的版本号,并可以加载配置项。
转载:https://blog.csdn.net/TsingSee/article/details/112286026