FFmpeg是一套开源的音视频编解码库,有非常强大的功能,包括视频采集功能、视频格式转换等。众所周知视频编解码是一个非常消耗系统资源的过程,而树莓派自带了H.264的硬件编解码器,因此本文将详解在树莓派配置FFmpeg使其支持硬件编解码器并编译安装的过程。
2018-11-13-raspbian-stretch-full.img
sudo apt-get update
sudo apt-get install git
2、下载x264源码
git clone https://git.videolan.org/git/x264.git
3、进入x264目录
cd x264
4、新建一个名为 config_x264.sh 的文件
touch config_x264.sh
5、使用nano打开 config_x264.sh
nano config_x264.sh
6、添加如下内容
#!/bin/sh
./configure \
--disable-shared --enable-static \
--enable-strip \
--disable-cli
7、然后增加执行权限
chmod +x config_x264.sh
8、依此进行以下每一行命令
./config_x264.sh
make -j4
sudo make install
执行make -j4
时会花费点10分钟左右,需要耐心等待
1、在FFmpeg官网获取源码 http://ffmpeg.org/download.html ,当前版本为 ffmpeg-4.1.tar.bz2
wget https://ffmpeg.org/releases/ffmpeg-4.1.tar.bz2
2、解压
tar jxvf ffmpeg-4.1.tar.bz2
3、进入解压得到的ffmpeg目录
cd ffmpeg-4.1
4、新建一个名为 config_ffmpeg.sh 的脚本文件
touch config_ffmpeg.sh
5、使用nano打开 config_ffmpeg.sh
nano config_ffmpeg.sh
6、输入如下内容:
#!/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-indev=alsa \
--enable-outdev=alsa \
\
--enable-omx \
--enable-omx-rpi \
--enable-encoder=h264_omx \
\
--enable-mmal \
--enable-hwaccel=h264_mmal \
--enable-decoder=h264_mmal \
\
7、然后增加执行权限
chmod +x config_ffmpeg.sh
8、依此进行以下每一行命令
./config_ffmpeg.sh
make -j4
sudo make install
执行make -j4
时会花费大约1小时左右,需要耐心等待。
执行 ./config_ffmpeg.sh 发生的错误:
1、ERROR: OMX_Core.h not found
2、WARNING: Option --enable-hwaccel=h264_mmal did not match anything
I believe you need a package called “libomxil-bellagio-dev” that will
provide the OMX header files.
sudo apt-get install libomxil-bellagio-dev
FFMPEG: Unknown input format: ‘alsa’
编译安装完成后运行推流命令 ffmpeg -f alsa -ac 2 -i hw:1,0 -ar 44100 -f flv rtmp://192.168.10.109/live/audio 时发生如下错误 FFMPEG: Unknown input format: ‘alsa’ 的解决办法:
sudo apt-get install libasound2-dev
然后重新执行下载源码编译安装ffmpeg过程中的第6到8步。
1、ubuntu + rtmp + ffmpeg(硬解码) + 树莓派实现视频直播(第二步) - 车前猛跑 - CSDN博客
2、树莓派编译FFMPEG - 伏雌摘星阁 - CSDN博客
3、树莓派编译安装FFmpeg(添加H.264硬件编解码器支持) - 简书
4、树莓派编译安装ffmpeg | 树莓派小无相系列 - 树莓派小无相系列 - SegmentFault 思否
5、树莓派编译安装FFmpeg(添加H.264硬件编解码器支持) - 程序园
6、audio - FFMPEG: Unknown input format: ‘alsa’ - Raspberry Pi Stack Exchange (解决错误所参考的资料)