树莓派编译ffmpeg支持h264_mmal硬解码

1,x264源码编译
1.1下载x264源码,解压
1.2添加一个脚本文件config_x264_rpi.sh ,放入1.1解压之后的文件夹中
1.3脚本内容
#!/bin/sh
./configure \
--disable-shared --enable-static \
--enable-strip \
--disable-cli
1.4执行完脚本后
sudo make -j4
sudo make install 
1.5你会在/usr/local/include  /usr/local/lib 中看到x264相关的内容
1.6将编好的库文件名x264加入项目的CMakeLists中

2,安装usrland
2.1下载usrland源码,解压
2.2直接运行脚本buildme
2.3你会在/opt/vc 中找到mmal的相关头文件和依动态赖库
2.6将编好的库文件名    
    libmmal.so
    libmmal_components.so
    libmmal_core.so
    libmmal_util.so
    libmmal_vc_client.so
    libbcm_host.so
    加入项目的CMakeLists中,动态库需要加上扩展名.so
2.7cmakelist中加入set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -latomic")

3编译ffmpeg
3.1下载ffmpeg源码,解压
3.2添加脚本文件config_ffmpeg_rpi.sh,放入3.1解压后的文件中
3.3脚本内容
#!/bin/sh
PREFIX=/usr/local
./configure \
--enable-gpl    --enable-version3 --enable-nonfree \
--enable-static --disable-shared \
\
--prefix=$PREFIX \
\
--disable-opencl \
--disable-thumb \
--disable-pic \
--disable-stripping \
\
--enable-small \
\
--enable-ffmpeg \
--enable-ffplay \
--enable-ffprobe \
\
--disable-doc \
--disable-htmlpages \
--disable-podpages \
--disable-txtpages \
--disable-manpages \
\
--disable-everything \
\
--enable-libx264 \
--enable-encoder=libx264 \
--enable-decoder=h264 \
--enable-encoder=aac \
--enable-decoder=aac \
--enable-encoder=ac3 \
--enable-decoder=ac3 \
--enable-encoder=rawvideo \
--enable-decoder=rawvideo \
--enable-encoder=mjpeg \
--enable-decoder=mjpeg \
\
--enable-demuxer=concat \
--enable-muxer=flv \
--enable-demuxer=flv \
--enable-demuxer=live_flv \
--enable-muxer=hls \
--enable-muxer=segment \
--enable-muxer=stream_segment \
--enable-muxer=mov \
--enable-demuxer=mov \
--enable-muxer=mp4 \
--enable-muxer=mpegts \
--enable-demuxer=mpegts \
--enable-demuxer=mpegvideo \
--enable-muxer=matroska \
--enable-demuxer=matroska \
--enable-muxer=wav \
--enable-demuxer=wav \
--enable-muxer=pcm* \
--enable-demuxer=pcm* \
--enable-muxer=rawvideo \
--enable-demuxer=rawvideo \
--enable-muxer=rtsp \
--enable-demuxer=rtsp \
--enable-muxer=rtsp \
--enable-demuxer=sdp \
--enable-muxer=fifo \
--enable-muxer=tee \
\
--enable-parser=h264 \
--enable-parser=aac \
\
--enable-protocol=file \
--enable-protocol=tcp \
--enable-protocol=rtmp \
--enable-protocol=cache \
--enable-protocol=pipe \
\
--enable-filter=aresample \
--enable-filter=allyuv \
--enable-filter=scale \
--enable-libfreetype \
\
--enable-indev=v4l2 \
--enable-indev=alsa \
\
--enable-omx \
--enable-omx-rpi \
--enable-encoder=h264_omx \
\
--enable-mmal \
--enable-hwaccel=h264_mmal \
--enable-decoder=h264_mmal \
\
--extra-ldflags="-latomic"\
3.4执行脚本后
sudo make -j4
sudo make install
3.5你会在/usr/local/include  /usr/local/lib看到ffmpeg相关的头文件和lib文件
3.6测试ffmpeg是否支持硬解码
   执行命令 ffmpeg后出现 h264_omx --enable-mmal --enable-hwaccel=h264_mmal
   表示支持硬解码
3.6将3.5文件加入想项目,lib名称加入到CMakeList文件中
3.7然后编译项目,代码中根据名称h264_mmal查找解码器来测试播放视频

4软硬解码对比
4.1cpu使用率降低20%以上,但是比软件的延时大;

以上由本人测试通过
测试环境:树莓派4  
ffmpeg信息:ffmpeg version 4.4.git Copyright (c) 2000-2021 the FFmpeg developers
built with gcc 8 (Raspbian 8.3.0-6+rpi1)

树莓派编译ffmpeg支持x264硬解码播放视频相关推荐

  1. Ubuntu18.04 编译FFmpeg 支持 QSV 硬编解码

    在Linux下,由于FFmpeg软解码CPU占用过高,所以打算使用h264_qsv硬解码,本文并非原创,主要参考以下文章,在此记录下编译过程,以便日后使用. 参考文章: 视频和视频帧:FFMPEG+I ...

  2. linux 编译ffmpeg 支持x264, x265

    原址 1. 前言 本教程涉及的ffmpeg, x264, x265 2. 环境依赖 2.1 删除系统中安装的ffmpeg等库 [plain] view plaincopy sudo apt-get - ...

  3. linux 编译x264,linux 编译ffmpeg 支持x264, x265

    1. 前言 本教程涉及的ffmpeg, x264, x265 2. 环境依赖 2.1 删除系统中安装的ffmpeg等库 sudo apt-get --purge remove ffmpeg mplay ...

  4. ati catalyst linux 视频解码,如何为ATI/APU用户编译编译安装XBMC,硬解播放视频

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 什么是Xvba Xvba(X-Video Bitstream Acceleration)是使用A卡和FusionAPU进 ...

  5. ios 编译ffmpeg 支持 x264 fdk-aac openssl 并裁剪库大小

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2018-10-11更新 android平台编译 右转 新的报错信息 ./lib ...

  6. 在Ubuntu下FFmpeg编译,支持x264和x265(HECV)

    所有下载的源 在Ubuntu下FFmpeg编译,支持x264和x265. Ubuntu 12.04 FFmpeg 2.1 Release 注意: cmake要升级要2.8.8 yasm要升级到1.2. ...

  7. Ubuntu 下编译ffmpeg和x264解编码器(翻译的一篇文章:)

    拿出自己一篇早期接触Ubuntu时翻译的文章,对逝去的SEO-DIC.COM.CN这个网站默哀. Ubuntu 下编译ffmpeg和x264解编码器 今年初由于个人的一些原因和其它因素:希奥开源(ht ...

  8. Ubuntu下编译ffmpeg+openh264+x264

    [笔记] Ubuntu下编译ffmpeg+openh264+x264 原文:https://www.cnblogs.com/journeyonmyway/p/4648820.html - ffmpeg ...

  9. linux编译ffmpeg_[Cmake-Android音视频]ffmpeg3.4编译支持neon,硬解码

    编译环境 Ubuntu16.04 x86_64 Ffmpeg3.4 ndk-r14b 编译前的准备 ubuntu16.04 64位 Index of /releases/16.04.3​release ...

最新文章

  1. 【STM32】STM32f4学习之路--嘀嗒定时器
  2. 5位随机数重复的概率 php_php防止表单重复提交的方法
  3. 图解使用Win8Api进行Metro风格的程序开发二----使用文件选择器访问和保存文件
  4. ConcurrentHashMap 1.8 源码分析
  5. 利用jdk自带的运行监控工具JConsole观察分析Java程序的运行 Jtop
  6. 给定一个0-1串,请找到一个尽可能长的子串,其中包含的0与1的个数相等。
  7. React Native 与 Flutter 的跨平台之战!
  8. 仍然提供32位Linux发行版,Ubuntu 20.04彻底淘汰32位映像,只提供64位映像下载
  9. js 函数传参改变div属性
  10. 【转】智能家居 系统安装及HA系统介绍
  11. 信息学奥赛一本通:1153:绝对素数
  12. 基于白鲸优化算法的函数寻优算法
  13. 淘宝线上线下“出淘”欲打造零售业航母
  14. hp微型计算机装打印机,hp打印机如何安装 hp打印机安装步骤及注意事项【详解】...
  15. 微信朋友圈背景图片尺寸
  16. 王者荣耀头像大小怎么调?调整图片尺寸大小工具分享
  17. 【云原生 | 19】在单台宿主机上管理Docker容器
  18. windows10系统下mfc100u.dll加载失败的解决方法
  19. Android zxing扫描本地二维码图片NotFoundException
  20. 你想要的100套HTML模板

热门文章

  1. PHP+Redis令牌桶算法 接口限流
  2. 怎么删除github项目/仓库中已经上传的代码
  3. 微信小程序布局-图片+文字
  4. 2019.3.27个人赛
  5. MySQL数据库操作-查看数据库 (SHOW DATABASES)
  6. Ubuntu 命令行下浏览网页
  7. 小程序楼层索引,将汉字转换为拼音并以首字母排序
  8. 无人机3d可视化系统的应用是怎样实现的?
  9. 数据分析体系 - 用户粘性(DAU/MAU 和 月人均活跃天数)
  10. RateLimiter实现限流