Page 1 of 1

FFMpeg 冲突解决办法

Posted: 2024年 Oct 17日 17:59
by xucs

一、问题背景:
对sdk对接的客户,可能会使用第三方组件,第三方组件也使用了ffmpeg,也可能直接引入ffmpeg,同时也使用了我们的组件,这样就会导致ffmpeg冲突。

二、问题原因:
导致ffmpeg冲突的原因,主要是一个app里面有多个ffmpeg版本,或者使用了同一版本,但是功能不一样。导致ffmpeg冲突,直接表现就是部分功能错误和失败,包括第三方组件功能和我们的相关功能。有时候还会引起app崩溃。

三、解决方案:
1、总的原则和思路:
同一个app内使用同一版本同样功能的ffmpeg组件(动态库或者静态库)。
版本不同的ffmpeg,尽量都使用高版本的ffmpeg版本。
同一ffmpeg版本,则采用功能更全的ffmpeg编译选项。

Code: Select all

    2、解决办法(以cube为例):
    cube的用户在使用的过程中直接使用了官方提供的ffmpeg组件(pod 'mobile-ffmpeg-full', '4.4')。在使用我们的组件之后,用户app在运行过程中出现崩溃以及部分功能不正常的问题。

    接到问题之后,我们着手进行分析,发现客户使用的ffmpeg版本与我们的版本虽然一样,但是他们的功能更全,我们决定基于用户的包来对我们的组件进行改造。并提供相关的组件('ThingFFmpegWrapper', '4.4.2-full.1')。

    用户在使用的时候,同时引用两个组件即可解决冲突问题。(pod 'mobile-ffmpeg-full', '4.4'、pod 'ThingFFmpegWrapper', '4.4.2-full.1'),对公版的用户,或者没有单独引入ffmpeg的用户则仍然使用我们公版的ffmpegwrapper组件版本。

  3、涂鸦未支持的ffmpeg版本:
   目前涂鸦智能默认提供4.4.2的版本,如果用户确实需要其他版本的ffmpeg,这种情况这需要单独协调解决。

Re: FFMpeg Conflict Solution

Posted: 2024年 Oct 23日 19:35
by 台杰兰

想问下第3种情况,可以怎么协调处理下,我们公司是集成了其他公司的ffmpeg 4.4.4版本。然后集成com.thingclips.smart:thingsmart-ipcsdk:5.16.0后,发现直播视频流无法打开,IThingSmartCameraP2P无法连接成功。


Re: FFMpeg 冲突解决办法

Posted: 2024年 Oct 24日 14:21
by xucs

这种情况,首先确认第三方公司的ffmpeg4.4.4 能否满足我们的功能。如果可以,我们可以用他们的so制作特殊定制包,这就需要你们来协商和协调。
反正总的原则就是一个app里面只有一份ffmepg。这份ffmpeg的功能要包含所有组件的功能就行。