【FFMPEG】【ARM-Linux开发】arm上安装FFMPEG
交叉编译工具下载地址 :
https://launchpad.net/linaro-toolchain-binaries/+download
其中我下载的是 :
gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux.tar.xz (md5, sig)
arm-Linux-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 位的系统后解决。
编译完成后在目标机器上执行, 出错 :
- root@cubieboard2:/home/linaro# ldd ffmpeg
- ./ffmpeg: /lib/arm-linux-gnueabihf/libc.so.6: version `GLIBC_2.17' not found (required by ./ffmpeg)
- libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0xb6ee2000)
- libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0xb6ec6000)
- libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6de2000)
- /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
下来在目标机器上查看就正常了 :
- root@cubieboard2:/home/linaro# ldd ffmpeg
- libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0xb6ec6000)
- libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0xb6ea3000)
- libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0xb6e88000)
- libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6da4000)
- /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上没问题:
- [h264 @ 0x15b80a0] RTP: missed 28 packets
- [h264 @ 0x15b80a0] RTP: missed 5 packets
- [h264 @ 0x15b80a0] error while decoding MB 75 37, bytestream (-10)
- [h264 @ 0x15b80a0] concealing 614 DC, 614 AC, 614 MV errors in P frame
- RTP: missed 3 packets=17.1 size= 1062kB time=00:00:41.48 bitrate= 209.7kbits/s dup=0 drop=5
- [h264 @ 0x15b80a0] RTP: missed 6 packets
- [h264 @ 0x15b80a0] RTP: missed 3 packets
- Last message repeated 1 times
- [h264 @ 0x15b80a0] RTP: missed 6 packets
- [h264 @ 0x15b80a0] RTP: missed 3 packets
- [h264 @ 0x15b80a0] RTP: missed 6 packets
- [h264 @ 0x15b80a0] RTP: missed 3 packets
- [h264 @ 0x15b80a0] RTP: missed 6 packets
- RTP: missed 28 packets17.1 size= 1062kB time=00:00:41.48 bitrate= 209.7kbits/s dup=0 drop=5
- [h264 @ 0x15b80a0] error while decoding MB 61 34, bytestream (-5)
- [h264 @ 0x15b80a0] concealing 868 DC, 868 AC, 868 MV errors in P frame
- [h264 @ 0x15b80a0] RTP: missed 25 packets
- [h264 @ 0x15b80a0] error while decoding MB 40 34, bytestream (-7)
- [h264 @ 0x15b80a0] concealing 889 DC, 889 AC, 889 MV errors in P frame
- [h264 @ 0x15b80a0] RTP: missed 49 packets
- [h264 @ 0x15b80a0] error while decoding MB 9 20, bytestream (-20)
【FFMPEG】【ARM-Linux开发】arm上安装FFMPEG的更多相关文章
- minigui移植到arm linux开发板上无法执行
要保证目录下有该文件 /etc/MiniGUI.cfg 复制过程使用cp –af 强制复制
- 【FFMPEG】Ubuntu上安装FFMPEG
在之前,我们成功地使用mingw+msys在Windows平台下编译FFmpeg(见 http://www.linuxidc.com/Linux/2014-11/109839.htm),并生成了ffp ...
- 在Red Hat Enterprise Linux 7.3上安装SQL Server 2017
必要条件: 1.在此快速安装过程中,您需要安装SQL Server 2017或SQL Server 2019上Red Hat Enterprise Linux (RHEL) 7.3 +.然后使用sql ...
- Linux Centos 系统上安装BT客户端 Transmission
Linux Centos 系统上安装BT客户端 Transmission Transmission是一种BitTorrent客户端,特点是一个跨平台的后端和其上的简洁的用户界面,以MIT许可证和G ...
- Linux CentOS系统上安装Eclipse
Linux CentOS系统上安装Eclipse 1. 下载Eclipse软件 下载网址:http://www.eclipse.org/downloads/packages/release/Juno/ ...
- Linux CentOS-7.0上安装Tomcat7
Linux CentOS-7.0上安装Tomcat7 安装说明 安装环境:CentOS-7.0.1406安装方式:源码安装 软件:apache-tomcat-7.0.29.tar.gz 下载地址: ...
- 在 Linux Mint 19 上安装 zsh 和设置小键盘一步到位
在 Linux Mint 19 上安装 zsh 和设置小键盘 安装 zsh 并设置 zsh 为默认 shell 安装 sudo apt install zsh 设置 zsh 为默认 shell,注意没 ...
- 在Ubuntu上建立Arm Linux 开发环境
我使用的是友善2410的板子,以前都是用Fedora,现在家里的电脑被我转为Linux专用的了,装的是Ubuntu.但是嵌入式还是要玩的,在装载过程中也遇到一些小麻烦.在此记录一下,一来自己比较健忘, ...
- Android 在Windows上安装FFmpeg程序
FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序.它提供了录制.转换以及流化音视频的完整解决方案.它包含了非常先进的音频/视频编解码库libavcodec. 该程序 ...
- 成功移植SQLite3到ARM Linux开发板
SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了 ...
随机推荐
- pycharm分辨率&清晰度
三个月前换了新电脑,安装pycharm.又换了新的大屏幕. pycharm界面拖到大屏上时,字大小和字体都没有变化,清晰度低了很多,就像打了一层薄薄的马赛克一样.拖回到原本的屏幕又清晰了. 一直以为是 ...
- Jekyll添加FancyBox 插件
一.简要 这是之前在GitHub Page上面使用博客功能的完善,之前每次传到GitHub上面的图片在博客里面都是显示压缩后的,导致很多代码细节都看不清. Markdown 语法中的图片我们一般是如此 ...
- 后代元素 span:first-child{...}
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- SIGAI机器学习第七集 k近邻算法
讲授K近邻思想,kNN的预测算法,距离函数,距离度量学习,kNN算法的实际应用. KNN是有监督机器学习算法,K-means是一个聚类算法,都依赖于距离函数.没有训练过程,只有预测过程. 大纲: k近 ...
- 通过无线网络使用ADB ( Connect to android with ADB over TCP )
之前用USB数据线连接电脑和android手机,用adb操控手机. 后来电脑前面板的USB全坏了,键盘.鼠标.USBKkey.打印机都需USB, 少一个USB口,只得对不常用设备进行插拔切换. 于是 ...
- rep stos ptr dword es:[edi]
今天读代码时,忽然跳出如下一条指令==>>汇编代码: rep stos dword ptr es:[edi] 在网上查了相关资料显示:/************************** ...
- Vs中包含目录、库目录、附加包含目录、附加库目录、附加依赖项之详解
VS项目中的包含目录.库目录.附加包含目录.附加库目录.附加依赖项均在"项目->属性->配置属性"下进行配置,具体说明如下: VC++目录: 包含目录:寻找#inclu ...
- 存在日期类型的JSON数据,进行SpringMVC参数绑定时存在的问题和解决方案
这篇文章已经过时了. 请参考比较合适的前后端交互方式. 首先是发送AJAX请求的html页面 <!DOCTYPE html> <html> <head> <m ...
- 【ElasticSearch+NetCore 第二篇】Nest封装
using Elasticsearch.Net; using Nest; using System; using System.Collections.Generic; using System.Li ...
- idea中,springboot的热部署
1.开启idea的自动编译(静态) 具体步骤:打开顶部工具栏File | Settings | Build, Execution, Deployment | Compiler 然后勾选 Build p ...