说明

FFmpeg 是一套开源的音视频编解码库,有非常强大的功能,包括视频采集功能、视频格式转换等。众所周知视频编解码是一个非常消耗系统资源的过程,而树莓派自带了 H.264 的硬件编解码器,因此本文将详解在树莓派配置 FFmpeg 使其支持硬件编解码器并编译安装的过程。

准备工作

树莓派一个(1 至 3 代都可以)

已连接到网络( github 无障碍)

步骤

更新源并安装 git

  1. sudo apt-get update
  2. sudo apt-get install git

安装 libx264-dev

  1. sudo apt-get install libx264-dev

ffmpeg 配置脚本 config_ffmpeg_rpi.sh ,放进 ffmpeg 目录

  1. #!/bin/sh
  2. PREFIX=/usr/local
  3. ./configure \
  4. --enable-gpl --enable-version3 --enable-nonfree \
  5. --enable-static --disable-shared \
  6. \
  7. --prefix=$PREFIX \
  8. \
  9. --disable-opencl \
  10. --disable-thumb \
  11. --disable-pic \
  12. --disable-stripping \
  13. \
  14. --enable-small \
  15. \
  16. --enable-ffmpeg \
  17. --enable-ffplay \
  18. --enable-ffserver \
  19. --enable-ffprobe \
  20. \
  21. --disable-doc \
  22. --disable-htmlpages \
  23. --disable-podpages \
  24. --disable-txtpages \
  25. --disable-manpages \
  26. \
  27. --disable-everything \
  28. \
  29. --enable-libx264 \
  30. --enable-encoder=libx264 \
  31. --enable-decoder=h264 \
  32. --enable-encoder=aac \
  33. --enable-decoder=aac \
  34. --enable-encoder=ac3 \
  35. --enable-decoder=ac3 \
  36. --enable-encoder=rawvideo \
  37. --enable-decoder=rawvideo \
  38. --enable-encoder=mjpeg \
  39. --enable-decoder=mjpeg \
  40. \
  41. --enable-demuxer=concat \
  42. --enable-muxer=flv \
  43. --enable-demuxer=flv \
  44. --enable-demuxer=live_flv \
  45. --enable-muxer=hls \
  46. --enable-muxer=segment \
  47. --enable-muxer=stream_segment \
  48. --enable-muxer=mov \
  49. --enable-demuxer=mov \
  50. --enable-muxer=mp4 \
  51. --enable-muxer=mpegts \
  52. --enable-demuxer=mpegts \
  53. --enable-demuxer=mpegvideo \
  54. --enable-muxer=matroska \
  55. --enable-demuxer=matroska \
  56. --enable-muxer=wav \
  57. --enable-demuxer=wav \
  58. --enable-muxer=pcm* \
  59. --enable-demuxer=pcm* \
  60. --enable-muxer=rawvideo \
  61. --enable-demuxer=rawvideo \
  62. --enable-muxer=rtsp \
  63. --enable-demuxer=rtsp \
  64. --enable-muxer=rtsp \
  65. --enable-demuxer=sdp \
  66. --enable-muxer=fifo \
  67. --enable-muxer=tee \
  68. \
  69. --enable-parser=h264 \
  70. --enable-parser=aac \
  71. \
  72. --enable-protocol=file \
  73. --enable-protocol=tcp \
  74. --enable-protocol=rtmp \
  75. --enable-protocol=cache \
  76. --enable-protocol=pipe \
  77. --enable-protocol=srtp \
  78. \
  79. --enable-filter=aresample \
  80. --enable-filter=allyuv \
  81. --enable-filter=scale \
  82. --enable-libfreetype \
  83. \
  84. --enable-indev=v4l2 \
  85. --enable-indev=alsa \
  86. \
  87. --enable-omx \
  88. --enable-omx-rpi \
  89. --enable-encoder=h264_omx \
  90. \
  91. --enable-mmal \
  92. --enable-hwaccel=h264_mmal \
  93. --enable-decoder=h264_mmal \
  94. \

在 FFmpeg 官网获取源码 http://ffmpeg.org/download.html ,当前版本为 ffmpeg-3.4.7.tar.bz2 ,配置完成后编译并安装

  1. wget http://ffmpeg.org/releases/ffmpeg-3.4.7.tar.bz2
  2. tar jxvf ffmpeg-3.4.7.tar.bz2
  3. cd ffmpeg-3.4.7
  4. mv ../config_ffmpeg_rpi.sh ./
  5. chmod +x config_ffmpeg_rpi.sh
  6. ./config_ffmpeg_rpi.sh
  7. make -j4
  8. sudo make install

输入 ffmpeg 并回车,可以看到其中有 h264_omx 和 h264_mmal 字样,说明 ffmpeg 已支持树莓派的 H.264 硬件编解码器。

最后

下一篇文章将介绍硬件 H.264 硬件编解码器的应用。

树莓派编译安装 FFmpeg(添加 H.264 硬件编解码器支持)的更多相关文章

  1. Linux---centos编译安装ffmpeg

    环境 系统环境:CentOS release 6.7 (Final) 需求 编译安装ffmpeg 获取依赖 安装依赖包 yum install -y autoconf automake cmake f ...

  2. 阿里云服务器---centos编译安装ffmpeg

    环境 系统环境:CentOS release 6.7 (Final) 需求 编译安装ffmpeg 获取依赖 安装依赖包 yum install -y autoconf automake cmake f ...

  3. 树莓派编译安装opencv3 (2019.1.6更新)

    一.更新系统 sudo apt-get update sudo apt-get upgrade sudo rpi-update #重启系统 sudo reboot 二.安装依赖库及程序 sudo ap ...

  4. CentOS-6.4 编译安装ffmpeg加x264以及rtmp

    CentOS 6.4-64位下编译ffmpeg几个简单步骤: 1.编译前环境准备: 2.下载源码: 3.编译,安装: ----------------------------------------- ...

  5. FFmpeg的H.264解码器源代码简单分析:环路滤波(Loop Filter)部分

    ===================================================== H.264源代码分析文章列表: [编码 - x264] x264源代码简单分析:概述 x26 ...

  6. FFmpeg的H.264解码器源代码简单分析:宏块解码(Decode)部分-帧间宏块(Inter)

    ===================================================== H.264源代码分析文章列表: [编码 - x264] x264源代码简单分析:概述 x26 ...

  7. [CentOS_7.4]Linux编译安装ffmpeg

    [CentOS_7.4]Linux编译安装ffmpeg   安装过程: 下载安装源,配置,编译,安装,设置环境变量. # wget http://www.ffmpeg.org/releases/ffm ...

  8. FFmpeg的H.264解码器源代码简单分析:熵解码(Entropy Decoding)部分

    ===================================================== H.264源代码分析文章列表: [编码 - x264] x264源代码简单分析:概述 x26 ...

  9. FFmpeg的H.264解码器源代码简单分析:解码器主干部分

    ===================================================== H.264源代码分析文章列表: [编码 - x264] x264源代码简单分析:概述 x26 ...

随机推荐

  1. NSOperation/NSOperationQueue详细使用介绍

      一.简介 (1)是使用GCD实现的一套Objective-C的API (2)是面向对象的线程技术 (3)提供了一些在GCD中不容易实现的特性,如:限制最大并发数量.操作之间的依赖关系   NSOp ...

  2. Java判断字符串是否包含数字

    public static boolean isContainNumber(String company) { Pattern p = Pattern.compile("[0-9]" ...

  3. Markdown编辑器及图床推荐

    Typora和自动图床工具 Typora 地址 ,极致简洁,界面很漂亮,最重要的是所见即所得 百度云搬运 密码:xi01 自动图床工具 需要七牛云做图床,感谢作者,详见博客 使用方法,只需两步即可完成 ...

  4. dp-矩阵连乘

    参考:http://blog.csdn.net/liufeng_king/article/details/8497607 使用备忘录算法复杂度降至O(n^3) #include<stdio.h& ...

  5. python爬虫实战(1)--爬取糗事百科

    这里利用正则表达式进行匹配,糗事百科是不需要登录的,所以也没必要用到Cookie,另外糗事百科有的段子是附图的,我们把图抓下来图片不便于显示,那么我们就尝试过滤掉有图的段子. 本篇目标 1.抓取糗事百 ...

  6. 在JAVA中,String,Stringbuffer,StringBuilder 的区别

    首先是,String,StringBuffer的区别 两者的主要却别有两方面,第一是线程安全方面,第二是效率方面 线程安全方面: String  不是线程安全的,这意味着在不同线程共享一个String ...

  7. java中用正则表达式判断中文字符串中是否含有英文或者数字

    public static boolean includingNUM(String str)throws  Exception{ Pattern p  = Pattern.compile(" ...

  8. 【总结整理】行内标签span设置position:absolute/float属性可以设置宽度与高度

    postion:absolute 跳出文本流,不是行内元素,设置宽高有效,我的理解. 引用下曹刘阳写的<编写高质量代码-web前端开发修炼之道>一书中看到的一句话:position:abs ...

  9. JS中的!= 、== 、!==、===的用法和区别

    与c++中每一种类型都有明确的的定义不同:因JS中var定义存在,未具体区分类型,!=与==不能包含所有的条件,故加入!==与===用法: var num = 1; var str = '1'; va ...

  10. 最短路径Dijkstar算法和Floyd算法详解(c语言版)

    博客转载自:https://blog.csdn.net/crescent__moon/article/details/16986765 先说说Dijkstra吧,这种算法只能求单源最短路径,那么什么是 ...