首页 >> 数码 >

ffmpeg编译支持rtsp ffmpeg编译支持MediaCodec

2022-06-13 05:25:05 来源: 用户: 

大家好,我是云百科的客服小柏,我来为大家解答以上问题。ffmpeg编译支持rtsp,ffmpeg编译支持MediaCodec很多人还不知道,现在让我们一起来看看吧!

解答:

1、 1.下载源代码。搜索百度下载ffmpeg的源代码(我是3.14下载的)。ffmpeg的源代码是不断更新的,每次版本更新都会注明做了哪些改动。您可以查看更新日志。ffmpeg官网显示已经支持mediacodec。

2、 2.通过查阅ffmepg的官方文档,如下图所示,只支持mediacodec的解码。

3、 3.准备编译脚本。

4、 #!/bin/bash

5、 SYSROOT=$NDK/platforms/Android-9/arch-arm/

6、 toolchain=/root/Android/androidcrosstool

7、 功能构建_一

8、 {。/配置\

9、 -prefix=/root/Android/ffmpeg-3.1.4/Android/armV7-a\

10、 -启用-共享\

11、 -禁用-静态\

12、 -禁用程序\

13、 -disable-ffmpeg\

14、 -disable-ffplay\

15、 -disable-ffprobe\

16、 -disable-ffserver\

17、 -disable-doc\

18、 -disable-htmlpages\

19、 -disable-手册页\

20、 -disable-podpages\

21、 -disable-txtpages\

22、 -enable-swresample\

23、 -禁用调试\

24、 -disable-symver\

25、 -enable-jni\

26、 -enable-mediacodec\

27、 -enable-decoder=h264_mediacodec\

28、 -enable-HWAccel=h264_mediacodec\

29、 -enable-memalign-hack\

30、 -enable-gpl\

31、 -enable-非免费\

32、 -enable-version3\

33、 -enable-asm\

34、 -enable-交叉编译\

35、 -enable-filter=scale\

36、 -cross-prefix=$toolchain/bin/arm-Linux-androideabi-\

37、 -target-os=linux\

38、 -arch=arm\

39、 -cpu=armv7-a\

40、 -enable-neon\

41、 -sysroot=$SYSROOT\

42、 -extra-cflags='-March=armV7-a-mfpu=neon'\

43、 -extra-ldflags='-Wl,-lc-lm-ldl-llog'\

44、 $附加_配置_标志

45、 }

46、 CPU=armv7-a

47、 前缀=$(pwd)/android/$CPU

48、 建造一个

49、 主要部分在下图中用红框标出。

50、 4.配置前需要注意的是,android只能识别以结尾的动态库。所以。新版本的ffmpeg编译生成后,它的文件名不会以。所以,所以需要修改以结尾。所以。

51、 打开ffmpeg源目录中的配置文件,找到以下宏定义。

52、 slibname_WITH_MAJOR='$(slibname)。$(LIBMAJOR)'

53、 LIB_INSTALL_EXTRA_CMD='$$(RANLIB)'$(LIBDIR)/$(LIBNAME)''

54、 SLIB安装名称='$(SLIBNAME_WITH_VERSION)'

55、 SLIB_安装_链接='$(SLIBNAME_WITH_MAJOR)$(SLIBNAME)'

56、 上面的宏定义主要是指指定生成文件的格式,按照下面的写法直接修改就可以了。

57、 slibname_WITH_MAJOR='$(SLIBPREF)$(全名)-$(LIBMAJOR)$(SLIBSUF)'

58、 LIB_INSTALL_EXTRA_CMD='$$(RANLIB)'$(LIBDIR)/$(LIBNAME)''

59、 SLIB安装名称='$(SLIBNAME_WITH_MAJOR)'

60、 SLIB安装链接='$(SLIBNAME)'

61、 参考下图。

62、 5.打开终端,进入ffmpeg的源目录,运行配置脚本。

63、 配置后执行make-j8编译。

64、 编译然后执行makeinstall来安装到指定的目录。

65、 6.以下是使用方法。

66、 首先在程序初始化的时候调用av_jni_set_java_vm(vm,NULL);

67、 注意包含头文件,别忘了下面加extern'C',不然会提示找不到av_jni_set_java_vm。

68、 然后,在初始化解码器之前,那些软件解码器被强制替换为mediacodec支持的硬件解码器。

69、 这和平时的ffmpeg基本一样。

70、 另外需要注意的是,要找5.0以上的安卓。

71、 如果你不知道,它支持那些mediacodec解码,你可以使用。//configure-list-decoders去查,3.14版本只支持h264。

本文到此讲解完毕了,希望对大家有帮助。

  免责声明:本文由用户上传,与本网站立场无关。财经信息仅供读者参考,并不构成投资建议。投资者据此操作,风险自担。 如有侵权请联系删除!

 
分享:
最新文章
站长推荐