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

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

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”)

–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)

文章知识点与官方知识档案匹配,可进一步学习相关知识 络技能树首页概览22097 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年11月21日
下一篇 2021年11月21日

相关推荐