树莓派3B安装ffmpeg[通俗易懂]

树莓派3B安装ffmpeg[通俗易懂]树莓派3B安装ffmpeg树莓派型号:3b操作系统:ubuntu-mate-16.04.2-desktop-armhf-raspberry-pi.img如果只使用基础功能可以参考https://blog.csdn.net/qq_28877125/article/details/70186287用这里边的配置文件,编译起来的确比较快,十分钟内编译完成,但是,这个只包含了基础功能,我使…

大家好,又见面了,我是你们的朋友全栈君。

树莓派3B安装ffmpeg

树莓派型号:3b
操作系统:ubuntu-mate-16.04.2-desktop-armhf-raspberry-pi.img

如果只使用基础功能可以参考https://blog.csdn.net/qq_28877125/article/details/70186287
用这里边的配置文件,编译起来的确比较快,十分钟内编译完成,但是,这个只包含了基础功能,我使用过程中需要读取rstp流,这就无法处理了。

我的步骤如下:

1。 安装sdl2

sudo apt-get install libsdl2-dev

2。安装x264

git clone git://git.videolan.org/x264.git
cd x264

./configure --host=arm-unknown-linux-gnueabi --enable-static --disable-opencl --enable-shared

make -j4
sudo make install
  • 【增加选项 –enable-shared可避免安装 ffmpeg 时出现错误 ERROR: libx264 not found】
  • 树莓派是4核CPU,编译时加上 -j4可以加快编译速度

3。安装ffmpeg

git clone git://source.ffmpeg.org/ffmpeg.git
cd ffmpeg

./configure --arch=armv7l --target-os=linux \
--enable-gpl --enable-libx264 \ --enable-nonfree \ \
--enable-omx \ --enable-omx-rpi \ --enable-encoder=h264_omx \ \
--enable-mmal \ --enable-hwaccel=h264_mmal \ --enable-decoder=h264_mmal \ \

make -j2
sudo make install

报错及解决方案

报错——internal compiler error: Segmentation fault【出现该错误时我使用的是make -j4编译的】
这里写图片描述
解决——make -j2,或直接用make
推测应该是内存不足造成的。

报错——ERROR: OMX_Core.h not found.
解决——sudo apt-get install libomxil-bellagio-dev
参考——http://ffmpeg.org/pipermail/ffmpeg-user/2017-October/037577.html

测试

ffmpeg -i rtsp://admin:iie123456@172.16.18.207:554/h264/ch1/main/av_stream -c:v h264_omx -f flv test.flv

顺便说一下GCC降级方法

报段错误时,我开始以为是gcc版本不对造成的。后来发现好像不是。

sudo apt-get install --reinstall gcc gcc-4.9 gcc-4.9-base libgcc1 cpp-4.9
cd /usr/bin
sudo rm gcc
sudo ln -s gcc-4.9 gcc
gcc -v

参考——https://askubuntu.com/questions/312835/gcc-segmentation-fault-on-ubuntu-12-04
https://blog.csdn.net/u012175418/article/details/52690569

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/152931.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 深度学习简介(一)——卷积神经网络「建议收藏」

    深度学习简介(一)——卷积神经网络「建议收藏」本文的主要目的,是简单介绍时下流行的深度学习算法的基础知识,本人也看过许多其他教程,感觉其中大部分讲的还是太过深奥,于是便有了写一篇科普文的想法。博主也是现学现卖,文中如有不当之处,请各位指出,共同进

    2022年8月3日
    7
  • 守护进程「建议收藏」

    守护进程「建议收藏」[toc]终端在UNIX系统中,用户通过终端登录系统后得到一个Shell进程,这个终端成为Shell进程的控制终端(ControllingTerminal),进程中,控制终端是保存在PC

    2022年8月1日
    4
  • TCP拥塞控制算法(Tahoe/Reno/Newreno)

    TCP拥塞控制算法(Tahoe/Reno/Newreno)TCP拥塞控制算法(Tahoe/Reno/Newreno)前言TCP(TransmissionControlProtocol),传输控制协议,是目前__Internet__上最重要的一个通信协议之一,其作用是对数据的传输进行一定的控制;而拥塞控制算法又是TCP中最重要的一个算法之一,接下来我们先来了解一下基本概念,再来详细介绍3个协议中的拥塞控制算法以及他们之间的区别。前期知识储备及名词…

    2022年6月24日
    58
  • 两数之和c语言实现[通俗易懂]

    两数之和c语言实现[通俗易懂]int*twoSum(int*nums,intnumsSize,inttarget,int*returnSize){inti=0,j=0;*returnSize=2;int*a=(int*)malloc(sizeof(int)*2);for(i=0;i<numsSize;i++)…

    2022年6月13日
    30
  • python缩进块_Python缩进规则(包含快捷键)「建议收藏」

    和其它程序设计语言(如Java、C语言)采用大括号“{}”分隔代码块不同,Python采用代码缩进和冒号(:)来区分代码块之间的层次。在Python中,对于类定义、函数定义、流程控制语句、异常处理语句等,行尾的冒号和下一行的缩进,表示下一个代码块的开始,而缩进的结束则表示此代码块的结束。大理石平台精度等级注意,Python中实现对代码的缩进,可以使用空格或者Tab键实现。但无论…

    2022年4月8日
    100
  • python的缩进规则是什么意思_python什么情况下需要缩进

    python的缩进规则是什么意思_python什么情况下需要缩进一般的语言都是通过{}或end来作为代码块的标记,而Python则是通过缩进来识别代码块的。对于Python的这种“缩进”风格,喜欢它的人说这是一种乐趣;不喜欢它的人说这是一门需要卡尺的语言,因为需要使用“游标卡尺”去测量每行代码的缩进。不管怎么样,Python的开发者有意让违反了缩进规则的程序不能通过编译,以此让程序员养成良好的编程习惯。并且Python语言利用缩进表示语句块的开始和退出,而非使…

    2022年10月13日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号