博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【FFMPEG】【ARM-Linux开发】arm上安装FFMPEG
阅读量:5008 次
发布时间:2019-06-12

本文共 3376 字,大约阅读时间需要 11 分钟。

交叉编译工具下载地址 :

其中我下载的是 :

 (, )  arm--gnueabihf crosscompiler for Linux

在CentOS 64 位环境下交叉编译 ffmpeg

./configure --sysroot=/home/arm_linux/arm-linux-gnueabihf/libc --enable-cross-compile --arch=arm --target-os=linux --cross-prefix=/home/arm_linux/bin/arm-linux-gnueabihf- 

提示如下错误:

arm-linux-gnueabihf/arm-linux-gnueabihf/bin/gcc: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory

C compiler test failed.

上面这个错误执行

[root@localhost ffmpeg-1.1.3]#  yum   install   ld-linux.so.2

后解决。

然后继续configure , 又碰到下面的错误 :

[root@localhost ffmpeg-1.1.3]# /usr/routing/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc test.c

/usr/routing/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

这个错误后来换了  32 位的系统后解决。

编译完成后在目标机器上执行, 出错 :

[plain]   
  1. root@cubieboard2:/home/linaro# ldd ffmpeg  
  2. ./ffmpeg: /lib/arm-linux-gnueabihf/libc.so.6: version `GLIBC_2.17' not found (required by ./ffmpeg)  
  3.         libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0xb6ee2000)  
  4.         libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0xb6ec6000)  
  5.         libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6de2000)  
  6.         /lib/ld-linux-armhf.so.3 (0xb6f58000)  

这个问题是因为交叉编译工具的 glibc库的版本和目标机器上的glibc库的版本不一致造成的,

解决办法就是静态链接 glibc库,执行下面的命令重新生成Mkaefile文件。

./configure --sysroot=/home/arm_linux/arm-linux-gnueabihf/libc --enable-cross-compile --arch=arm --target-os=linux --cross-prefix=/home/arm_linux/bin/arm-linux-gnueabihf- --extra-libs=/home/arm_linux/arm-linux-gnueabihf/libc/usr/lib/arm-linux-gnueabihf/libc.a

make

下来在目标机器上查看就正常了 :

[plain]   
  1. root@cubieboard2:/home/linaro# ldd ffmpeg  
  2.         libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0xb6ec6000)  
  3.         libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0xb6ea3000)  
  4.         libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0xb6e88000)  
  5.         libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6da4000)  
  6.         /lib/ld-linux-armhf.so.3 (0xb6f3c000)  

不过运行的时候出问题了 :

root@cubieboard2:/home/linaro# ./ffmpeg

unexpected reloc type in static binaryAborted

看来静态链接libc库不是个办法。。。

还有一招, 就是直接从目标机器里把 libc.so.6  和  librt.so.1 这两个库 复制到 交叉编译机器, 覆盖源文件, 然后再重新编译即可。

执行 ffmpeg , 现在可以执行了, 不过有丢包, 有编解码失败的情况 , PC上没问题:

[plain]   
  1. [h264 @ 0x15b80a0] RTP: missed 28 packets  
  2. [h264 @ 0x15b80a0] RTP: missed 5 packets  
  3. [h264 @ 0x15b80a0] error while decoding MB 75 37, bytestream (-10)  
  4. [h264 @ 0x15b80a0] concealing 614 DC, 614 AC, 614 MV errors in P frame  
  5. RTP: missed 3 packets=17.1 size=    1062kB time=00:00:41.48 bitrate= 209.7kbits/s dup=0 drop=5      
  6. [h264 @ 0x15b80a0] RTP: missed 6 packets  
  7. [h264 @ 0x15b80a0] RTP: missed 3 packets  
  8.     Last message repeated 1 times  
  9. [h264 @ 0x15b80a0] RTP: missed 6 packets  
  10. [h264 @ 0x15b80a0] RTP: missed 3 packets  
  11. [h264 @ 0x15b80a0] RTP: missed 6 packets  
  12. [h264 @ 0x15b80a0] RTP: missed 3 packets  
  13. [h264 @ 0x15b80a0] RTP: missed 6 packets  
  14. RTP: missed 28 packets17.1 size=    1062kB time=00:00:41.48 bitrate= 209.7kbits/s dup=0 drop=5      
  15. [h264 @ 0x15b80a0] error while decoding MB 61 34, bytestream (-5)  
  16. [h264 @ 0x15b80a0] concealing 868 DC, 868 AC, 868 MV errors in P frame  
  17. [h264 @ 0x15b80a0] RTP: missed 25 packets  
  18. [h264 @ 0x15b80a0] error while decoding MB 40 34, bytestream (-7)  
  19. [h264 @ 0x15b80a0] concealing 889 DC, 889 AC, 889 MV errors in P frame  
  20. [h264 @ 0x15b80a0] RTP: missed 49 packets  
  21. [h264 @ 0x15b80a0] error while decoding MB 9 20, bytestream (-20)  

转载于:https://www.cnblogs.com/huty/p/8517576.html

你可能感兴趣的文章
luogu P1162 填涂颜色
查看>>
Resize图片
查看>>
Linux系统安装JDK和Tomcat
查看>>
linux压缩解压缩
查看>>
前端开发工程师如何在2013年里提升自己【转】--2016已更新升级很多何去何从?...
查看>>
markdown语法测试集合
查看>>
running and coding
查看>>
C++中的函数
查看>>
实现QQ第三方登录、网站接入
查看>>
HTML CSS 层叠样式表 三
查看>>
Qt pro pri 文件学习1
查看>>
软件工程概论第六周学习进度条
查看>>
[思路]导入导出功能
查看>>
【iOS】UICollectionView自己定义Layout之蜂窝布局
查看>>
php将数组或字符串写入文件
查看>>
【AHOI2013】【BZOJ3238】差异
查看>>
【以太坊钱包开发 一】MyEtherWallet 钱包开发项目概述
查看>>
golang——(strings包)常用字符串操作函数
查看>>
发布aar到jcenter
查看>>
跨浏览器问题的五种解决方案
查看>>