ffmpeg-rockchip编译安装_Linux_x86平台
ffmpeg的鼎鼎大名已经无需介绍了。本文是编译的瑞芯微rockchip的ffmpeg分支,如果你编译的是官方分支,那有一部分也是相同的。 nyanmisaka/ffmpeg-rockchip: FFmpeg with async and zero-copy Rockchip MPP & RGA support是带有硬件加速的版本,具体支持的编解码器在项目页有详细列出,本文后面也列出了编译后的结果。本文分成上下两篇,上文是x86平台的编译,下文是arm的交叉编译,如果需要交叉编译,可以直接跳过本文即可。
本项目旨在为支持 MPP(媒体处理平台)和 RGA(2D 光栅图形加速)的 Rockchip 平台提供完整的 FFmpeg CLI 硬件转码管道。这包括硬件解码器、编码器和过滤器。典型的目标平台是基于 RK3588/3588s 的设备。
环境准备
具体编译流程,官方提供了详细的步骤:Compilation · nyanmisaka/ffmpeg-rockchip Wiki,当然x86、x64平台下的用户众多,编译教程也很多:ffmpeg linux 编译 - 简书。我是在docker环境下的Ubuntu中编译的,目标硬件平台是:RV1126,本一步实际上什么平台都大差不差,只要不是Windows。
汇编器
ffmpeg需要对图形底层进行操作,需要安装如下依赖:
apt-get install yasm libdrm-dev nasm
x264
需要标准x264编码器:VideoLAN / x264 · GitLab,可以参考:Ubuntu20.4下x264、x265、fdk-aac和FFmpeg4.3源码编译安装_ubuntu安装libx264-CSDN博客。
git clone https://code.videolan.org/videolan/x264.git
root@7b108f530ecc:~/x264# ./configure --enable-shared --prefix=/usr/
platform: X86_64
byte order: little-endian
system: LINUX
cli: yes
libx264: internal
shared: yes
static: no
bashcompletion: no
asm: yes
interlaced: yes
avs: yes
lavf: no
ffms: no
mp4: no
gpl: yes
thread: posix
opencl: yes
filters: crop select_every
lto: no
debug: no
gprof: no
strip: no
PIC: yes
bit depth: all
chroma format: all
You can run 'make' or 'make fprofiled' now.
make
了,再make install
即可。
x265
因为现在还在x86平台,x265一般都是可以支持的,安装依赖也顺便安装了。从videolan源中寻找合适的版本:Index of /pub/videolan/x265/,本文使用的是3.2
。
tar -zxvf x265_3.2.tar.gz
x265_3.2/build/linux/make-Makefiles.bash
还是make
了,再make install
。
rockchip_mpp
然后就是需要安装rockchip-linux/mpp: Media Process Platform (MPP) module,是瑞芯微的媒体处理平台,ffmpeg也是底层通过调用mpp实现的。项目页中写明了支持的硬件型号:
下文的RGA和这里的安装教程在前面的ffmpeg-rockchip的wiki里面。
git clone -b jellyfin-mpp --depth=1 https://github.com/nyanmisaka/mpp.git rkmpp
pushd rkmpp
mkdir rkmpp_build
pushd rkmpp_build
cmake \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=ON \
-DBUILD_TEST=OFF \
..
make -j6
make install
librga
RGA
模块用于2D
图像的裁剪
、格式转换
、缩放
、旋转
、图片叠加
等。
是使用meson和ninja
构建的,缺少也需要安装。
root@7b108f530ecc:~# meson setup rkrga rkrga_build --prefix=/usr --libdir=lib --buildtype=release --default-library=shared -Dcpp_args=-fpermissive -Dlibdrm=false -Dlibrga_demo=false
The Meson build system
Version: 0.53.2
Source dir: /root/rkrga
Build dir: /root/rkrga_build
Build type: native build
Project name: librga
Project version: 2.1.0
C++ compiler for the host machine: c++ (gcc 9.4.0 "c++ (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0")
C++ linker for the host machine: c++ ld.bfd 2.34
Host machine cpu family: x86_64
Host machine cpu: x86_64
Run-time dependency threads found: YES
Build targets in project: 1
Found ninja-1.10.0 at /usr/bin/ninja
git clone -b jellyfin-rga --depth=1 https://github.com/nyanmisaka/rk-mirrors.git rkrga
meson setup rkrga rkrga_build \
--prefix=/usr \
--libdir=lib \
--buildtype=release \
--default-library=shared \
-Dcpp_args=-fpermissive \
-Dlibdrm=false \
-Dlibrga_demo=false
meson configure rkrga_build
ninja -C rkrga_build install
编译
完成了上面的依赖安装,就可以开始ffmpeg-rockchip的编译。根据需要指定编译参数。
./configure --prefix=/usr --enable-gpl --enable-version3 --enable-libdrm --enable-rkmpp --enable-rkrga
make -j $(nproc)
root@7b108f530ecc:~# cd ~/ffmpeg-rockchip/
root@7b108f530ecc:~/ffmpeg-rockchip# ./configure --prefix=/usr --enable-gpl --enable-version3 --enable-libdrm --enable-rkmpp --enable-rkrga --enable-libx264 --enable-libx265 --enable-ffplay
install prefix /usr
source path .
C compiler gcc
C library glibc
ARCH x86 (generic)
big-endian no
runtime cpu detection yes
standalone assembly yes
x86 assembler nasm
MMX enabled yes
MMXEXT enabled yes
3DNow! enabled yes
3DNow! extended enabled yes
SSE enabled yes
SSSE3 enabled yes
AESNI enabled yes
AVX enabled yes
AVX2 enabled yes
AVX-512 enabled yes
AVX-512ICL enabled yes
XOP enabled yes
FMA3 enabled yes
FMA4 enabled yes
i686 features enabled yes
CMOV is fast yes
EBX available yes
EBP available yes
debug symbols yes
strip symbols yes
optimize for size no
optimizations yes
static yes
shared no
postprocessing support yes
network support yes
threading support pthreads
safe bitstream reader yes
texi2html enabled no
perl enabled yes
pod2man enabled yes
makeinfo enabled yes
makeinfo supports HTML yes
xmllint enabled no
External libraries:
iconv libdrm libx264 libx265 rkmpp rkrga
External libraries providing hardware acceleration:
rkmpp v4l2_m2m
Libraries:
avcodec avdevice avfilter avformat avutil postproc swresample swscale
Programs:
ffmpeg ffprobe
Enabled decoders:
aac adpcm_xa cdgraphics flac jpegls msvideo1 pgm smvjpeg vp4
aac_fixed adpcm_xmd cdtoons flic jv mszh pgmyuv snow vp5
aac_latm adpcm_yamaha cdxl flv kgv1 mts2 pgssub sol_dpcm vp6
aasc adpcm_zork cfhd fmvc kmvc mv30 pgx sonic vp6a
ac3 agm cinepak fourxm lagarith mvc1 phm sp5x vp6f
ac3_fixed aic clearvideo fraps loco mvc2 photocd speedhq vp7
acelp_kelvin alac cljr frwu m101 mvdv pictor speex vp8
adpcm_4xm alias_pix cllc ftr mace3 mxpeg pixlet srt vp8_rkmpp
adpcm_adx als comfortnoise g723_1 mace6 nellymoser pjs ssa vp8_v4l2m2m
adpcm_afc amrnb cook g729 magicyuv notchlc ppm stl vp9
adpcm_agm amrwb cpia gdv mdec nuv prores subrip vp9_rkmpp
adpcm_aica amv cri gem media100 on2avc prosumer subviewer vp9_v4l2m2m
adpcm_argo anm cscd gif metasound opus psd subviewer1 vplayer
adpcm_ct ansi cyuv gremlin_dpcm microdvd osq ptx sunrast vqa
adpcm_dtk anull dca gsm mimic paf_audio qcelp svq1 vqc
adpcm_ea apac dds gsm_ms misc4 paf_video qdm2 svq3 wady_dpcm
adpcm_ea_maxis_xa ape derf_dpcm h261 mjpeg pam qdmc tak wavarc
adpcm_ea_r1 aptx dfa h263 mjpegb pbm qdraw targa wavpack
adpcm_ea_r2 aptx_hd dfpwm h263_rkmpp mlp pcm_alaw qoi targa_y216 wbmp
adpcm_ea_r3 arbc dirac h263_v4l2m2m mmvideo pcm_bluray qpeg text webp
adpcm_ea_xas argo dnxhd h263i mobiclip pcm_dvd qtrle theora webvtt
adpcm_g722 ass dolby_e h263p motionpixels pcm_f16le r10k thp wmalossless
adpcm_g726 asv1 dpx h264 movtext pcm_f24le r210 tiertexseqvideo wmapro
adpcm_g726le asv2 dsd_lsbf h264_rkmpp mp1 pcm_f32be ra_144 tiff wmav1
adpcm_ima_acorn atrac1 dsd_lsbf_planar h264_v4l2m2m mp1float pcm_f32le ra_288 tmv wmav2
adpcm_ima_alp atrac3 dsd_msbf hap mp2 pcm_f64be ralf truehd wmavoice
adpcm_ima_amv atrac3al dsd_msbf_planar hca mp2float pcm_f64le rawvideo truemotion1 wmv1
adpcm_ima_apc atrac3p dsicinaudio hcom mp3 pcm_lxf realtext truemotion2 wmv2
adpcm_ima_apm atrac3pal dsicinvideo hdr mp3adu pcm_mulaw rka truemotion2rt wmv3
adpcm_ima_cunning atrac9 dss_sp hevc mp3adufloat pcm_s16be rl2 truespeech wmv3image
adpcm_ima_dat4 aura dst hevc_rkmpp mp3float pcm_s16be_planar roq tscc2 wnv1
adpcm_ima_dk3 aura2 dvaudio hevc_v4l2m2m mp3on4 pcm_s16le roq_dpcm tta wrapped_avframe
adpcm_ima_dk4 av1 dvbsub hnm4_video mp3on4float pcm_s16le_planar rpza twinvq ws_snd1
adpcm_ima_ea_eacs av1_rkmpp dvdsub hq_hqa mpc7 pcm_s24be rtv1 txd xan_dpcm
adpcm_ima_ea_sead avrn dvvideo hqx mpc8 pcm_s24daud rv10 ulti xan_wc3
adpcm_ima_iss avrp dxtory huffyuv mpeg1_rkmpp pcm_s24le rv20 utvideo xan_wc4
adpcm_ima_moflex avs dxv hymt mpeg1_v4l2m2m pcm_s24le_planar rv30 v210 xbin
adpcm_ima_mtf avui eac3 iac mpeg1video pcm_s32be rv40 v210x xbm
adpcm_ima_oki ayuv eacmv idcin mpeg2_rkmpp pcm_s32le s302m v308 xface
adpcm_ima_qt bethsoftvid eamad idf mpeg2_v4l2m2m pcm_s32le_planar sami v408 xl
adpcm_ima_rad bfi eatgq iff_ilbm mpeg2video pcm_s64be sanm v410 xma1
adpcm_ima_smjpeg bink eatgv ilbc mpeg4 pcm_s64le sbc vb xma2
adpcm_ima_ssi binkaudio_dct eatqi imc mpeg4_rkmpp pcm_s8 scpr vble xpm
adpcm_ima_wav binkaudio_rdft eightbps imm4 mpeg4_v4l2m2m pcm_s8_planar sdx2_dpcm vbn xsub
adpcm_ima_ws bintext eightsvx_exp imm5 mpegvideo pcm_sga sga vc1 xwd
adpcm_ms bitpacked eightsvx_fib indeo2 mpl2 pcm_u16be sgi vc1_v4l2m2m y41p
adpcm_mtaf bmp escape124 indeo3 msa1 pcm_u16le sgirle vc1image ylc
adpcm_psx bmv_audio escape130 indeo4 msmpeg4v1 pcm_u24be sheervideo vcr1 yop
adpcm_sbpro_2 bmv_video evrc indeo5 msmpeg4v2 pcm_u24le shorten vmdaudio yuv4
adpcm_sbpro_3 bonk fastaudio interplay_acm msmpeg4v3 pcm_u32be simbiosis_imx vmdvideo zero12v
adpcm_sbpro_4 brender_pix ffv1 interplay_dpcm msnsiren pcm_u32le sipr vmix
adpcm_swf c93 ffvhuff interplay_video msp2 pcm_u8 siren vmnc
adpcm_thp cavs ffwavesynth ipu msrle pcm_vidc smackaud vnull
adpcm_thp_le cbd2_dpcm fic jacosub mss1 pcx smacker vorbis
adpcm_vima ccaption fits jpeg2000 mss2 pfm smc vp3
Enabled encoders:
a64multi alias_pix dvbsub jpeg2000 nellymoser pcm_s32le prores_aw srt wavpack
a64multi5 amv dvdsub jpegls opus pcm_s32le_planar prores_ks ssa wbmp
aac anull dvvideo libx264 pam pcm_s64be qoi subrip webvtt
ac3 aptx eac3 libx264rgb pbm pcm_s64le qtrle sunrast wmav1
ac3_fixed aptx_hd ffv1 libx265 pcm_alaw pcm_s8 r10k svq1 wmav2
adpcm_adx ass ffvhuff ljpeg pcm_bluray pcm_s8_planar r210 targa wmv1
adpcm_argo asv1 fits magicyuv pcm_dvd pcm_u16be ra_144 text wmv2
adpcm_g722 asv2 flac mjpeg pcm_f32be pcm_u16le rawvideo tiff wrapped_avframe
adpcm_g726 avrp flv mjpeg_rkmpp pcm_f32le pcm_u24be roq truehd xbm
adpcm_g726le avui g723_1 mlp pcm_f64be pcm_u24le roq_dpcm tta xface
adpcm_ima_alp ayuv gif movtext pcm_f64le pcm_u32be rpza ttml xsub
adpcm_ima_amv bitpacked h261 mp2 pcm_mulaw pcm_u32le rv10 utvideo xwd
adpcm_ima_apm bmp h263 mp2fixed pcm_s16be pcm_u8 rv20 v210 y41p
adpcm_ima_qt cfhd h263_v4l2m2m mpeg1video pcm_s16be_planar pcm_vidc s302m v308 yuv4
adpcm_ima_ssi cinepak h263p mpeg2video pcm_s16le pcx sbc v408
adpcm_ima_wav cljr h264_rkmpp mpeg4 pcm_s16le_planar pfm sgi v410
adpcm_ima_ws comfortnoise h264_v4l2m2m mpeg4_v4l2m2m pcm_s24be pgm smc vbn
adpcm_ms dca hdr msmpeg4v2 pcm_s24daud pgmyuv snow vc2
adpcm_swf dfpwm hevc_rkmpp msmpeg4v3 pcm_s24le phm sonic vnull
adpcm_yamaha dnxhd hevc_v4l2m2m msrle pcm_s24le_planar ppm sonic_ls vorbis
alac dpx huffyuv msvideo1 pcm_s32be prores speedhq vp8_v4l2m2m
Enabled hwaccels:
Enabled parsers:
aac avs3 dnxhd evc h261 jpegxl opus tak webp
aac_latm bmp dolby_e flac h263 misc4 png vc1 xbm
ac3 cavsvideo dpx ftr h264 mjpeg pnm vorbis xma
adx cook dvaudio g723_1 hdr mlp qoi vp3 xwd
amr cri dvbsub g729 hevc mpeg4video rv34 vp8
av1 dca dvd_nav gif ipu mpegaudio sbc vp9
avs2 dirac dvdsub gsm jpeg2000 mpegvideo sipr vvc
Enabled demuxers:
aa avr dv idf image_vbn_pipe moflex pcm_s16be sbg txd
aac avs dvbsub iff image_webp_pipe mov pcm_s16le scc ty
aax avs2 dvbtxt ifv image_xbm_pipe mp3 pcm_s24be scd usm
ac3 avs3 dxa ilbc image_xpm_pipe mpc pcm_s24le sdns v210
ac4 bethsoftvid ea image2 image_xwd_pipe mpc8 pcm_s32be sdp v210x
ace bfi ea_cdata image2_alias_pix ingenient mpegps pcm_s32le sdr2 vag
acm bfstm eac3 image2_brender_pix ipmovie mpegts pcm_s8 sds vc1
act bink epaf image2pipe ipu mpegtsraw pcm_u16be sdx vc1t
adf binka evc image_bmp_pipe ircam mpegvideo pcm_u16le segafilm vividas
adp bintext ffmetadata image_cri_pipe iss mpjpeg pcm_u24be ser vivo
ads bit filmstrip image_dds_pipe iv8 mpl2 pcm_u24le sga vmd
adx bitpacked fits image_dpx_pipe ivf mpsub pcm_u32be shorten vobsub
aea bmv flac image_exr_pipe ivr msf pcm_u32le siff voc
afc boa flic image_gem_pipe jacosub msnwc_tcp pcm_u8 simbiosis_imx vpk
aiff bonk flv image_gif_pipe jpegxl_anim msp pcm_vidc sln vplayer
aix brstm fourxm image_hdr_pipe jv mtaf pdv smacker vqf
alp c93 frm image_j2k_pipe kux mtv pjs smjpeg vvc
amr caf fsb image_jpeg_pipe kvag musx pmp smush w64
amrnb cavsvideo fwse image_jpegls_pipe laf mv pp_bnk sol wady
amrwb cdg g722 image_jpegxl_pipe live_flv mvi pva sox wav
anm cdxl g723_1 image_pam_pipe lmlm4 mxf pvf spdif wavarc
apac cine g726 image_pbm_pipe loas mxg qcp srt wc3
apc codec2 g726le image_pcx_pipe lrc nc r3d stl webm_dash_manifest
ape codec2raw g729 image_pfm_pipe luodat nistsphere rawvideo str webvtt
apm concat gdv image_pgm_pipe lvf nsp realtext subviewer wsaud
apng data genh image_pgmyuv_pipe lxf nsv redspark subviewer1 wsd
aptx daud gif image_pgx_pipe m4v nut rka sup wsvqa
aptx_hd dcstr gsm image_phm_pipe matroska nuv rl2 svag wtv
aqtitle derf gxf image_photocd_pipe mca obu rm svs wv
argo_asf dfa h261 image_pictor_pipe mcc ogg roq swf wve
argo_brp dfpwm h263 image_png_pipe mgsts oma rpl tak xa
argo_cvg dhav h264 image_ppm_pipe microdvd osq rsd tedcaptions xbin
asf dirac hca image_psd_pipe mjpeg paf rso thp xmd
asf_o dnxhd hcom image_qdraw_pipe mjpeg_2000 pcm_alaw rtp threedostr xmv
ass dsf hevc image_qoi_pipe mlp pcm_f32be rtsp tiertexseq xvag
ast dsicin hls image_sgi_pipe mlv pcm_f32le s337m tmv xwma
au dss hnm image_sunrast_pipe mm pcm_f64be sami truehd yop
av1 dts ico image_svg_pipe mmf pcm_f64le sap tta yuv4mpegpipe
avi dtshd idcin image_tiff_pipe mods pcm_mulaw sbc tty
Enabled muxers:
a64 avi evc h263 matroska_audio mxf pcm_s24le sap ttml
ac3 avif f4v h264 md5 mxf_d10 pcm_s32be sbc uncodedframecrc
ac4 avm2 ffmetadata hash microdvd mxf_opatom pcm_s32le scc vc1
adts avs2 fifo hds mjpeg null pcm_s8 segafilm vc1t
adx avs3 fifo_test hevc mkvtimestamp_v2 nut pcm_u16be segment voc
aiff bit filmstrip hls mlp obu pcm_u16le smjpeg vvc
alp caf fits ico mmf oga pcm_u24be smoothstreaming w64
amr cavsvideo flac ilbc mov ogg pcm_u24le sox wav
amv codec2 flv image2 mp2 ogv pcm_u32be spdif webm
apm codec2raw framecrc image2pipe mp3 oma pcm_u32le spx webm_chunk
apng crc framehash ipod mp4 opus pcm_u8 srt webm_dash_manifest
aptx dash framemd5 ircam mpeg1system pcm_alaw pcm_vidc stream_segment webp
aptx_hd data g722 ismv mpeg1vcd pcm_f32be psp streamhash webvtt
argo_asf daud g723_1 ivf mpeg1video pcm_f32le rawvideo sup wsaud
argo_cvg dfpwm g726 jacosub mpeg2dvd pcm_f64be rm swf wtv
asf dirac g726le kvag mpeg2svcd pcm_f64le roq tee wv
asf_stream dnxhd gif latm mpeg2video pcm_mulaw rso tg2 yuv4mpegpipe
ass dts gsm lrc mpeg2vob pcm_s16be rtp tgp
ast dv gxf m4v mpegts pcm_s16le rtp_mpegts truehd
au eac3 h261 matroska mpjpeg pcm_s24be rtsp tta
Enabled protocols:
async crypto file http mmsh rtmp subfile udplite
cache data ftp httpproxy mmst rtmpt tcp unix
concat fd gopher icecast pipe rtp tee
concatf ffrtmphttp hls md5 prompeg srtp udp
Enabled filters:
a3dscope amix axcorrelate crop field interleave oscilloscope setparams testsrc
abench amovie backgroundkey cropdetect fieldhint join overlay setpts testsrc2
abitscope amplify bandpass crossfeed fieldmatch kerndeint overlay_rkrga setrange thistogram
acompressor amultiply bandreject crystalizer fieldorder kirsch owdenoise setsar threshold
acontrast anequalizer bass cue fifo lagfun pad settb thumbnail
acopy anlmdn bbox curves fillborders latency pal100bars shear tile
acrossfade anlmf bench datascope find_rect lenscorrection pal75bars showcqt tiltshelf
acrossover anlms bilateral dblur firequalizer life palettegen showcwt tinterlace
acrusher anoisesrc biquad dcshift flanger limitdiff paletteuse showfreqs tlut2
acue anull bitplanenoise dctdnoiz floodfill limiter pan showinfo tmedian
addroi anullsink blackdetect deband format loop perms showpalette tmidequalizer
adeclick anullsrc blackframe deblock fps loudnorm perspective showspatial tmix
adeclip apad blend decimate framepack lowpass phase showspectrum tonemap
adecorrelate aperms blockdetect deconvolve framerate lowshelf photosensitivity showspectrumpic tpad
adelay aphasemeter blurdetect dedot framestep lumakey pixdesctest showvolume transpose
adenorm aphaser bm3d deesser freezedetect lut pixelize showwaves treble
aderivative aphaseshift boxblur deflate freezeframes lut1d pixscope showwavespic tremolo
adrawgraph apsnr bwdif deflicker fspp lut2 pp shuffleframes trim
adrc apsyclip cas dejudder gblur lut3d pp7 shufflepixels unpremultiply
adynamicequalizer apulsator ccrepack delogo geq lutrgb premultiply shuffleplanes unsharp
adynamicsmooth arealtime cellauto derain gradfun lutyuv prewitt sidechaincompress untile
aecho aresample channelmap deshake gradients mandelbrot pseudocolor sidechaingate uspp
aemphasis areverse channelsplit despill graphmonitor maskedclamp psnr sidedata v360
aeval arls chorus detelecine grayworld maskedmax pullup sierpinski vaguedenoiser
aevalsrc arnndn chromahold dialoguenhance greyedge maskedmerge qp signalstats varblur
aexciter asdr chromakey dilation guided maskedmin random signature vectorscope
afade asegment chromanr displace haas maskedthreshold readeia608 silencedetect vflip
afdelaysrc aselect chromashift dnn_classify haldclut maskfun readvitc silenceremove vfrdet
afftdn asendcmd ciescope dnn_detect haldclutsrc mcdeint realtime sinc vibrance
afftfilt asetnsamples codecview dnn_processing hdcd mcompand remap sine vibrato
afifo asetpts color doubleweave headphone median removegrain siti vif
afir asetrate colorbalance drawbox hflip mergeplanes removelogo smartblur vignette
afireqsrc asettb colorchannelmixer drawgraph highpass mestimate repeatfields smptebars virtualbass
afirsrc ashowinfo colorchart drawgrid highshelf metadata replaygain smptehdbars vmafmotion
aformat asidedata colorcontrast drmeter hilbert midequalizer reverse sobel volume
afreqshift asisdr colorcorrect dynaudnorm histeq minterpolate rgbashift spectrumsynth volumedetect
afwtdn asoftclip colorhold earwax histogram mix rgbtestsrc speechnorm vpp_rkrga
agate aspectralstats colorize ebur128 hqdn3d monochrome roberts split vstack
agraphmonitor asplit colorkey edgedetect hqx morpho rotate spp w3fdif
ahistogram astats colorlevels elbg hstack movie sab sr waveform
aiir astreamselect colormap entropy hsvhold mpdecimate scale ssim weave
aintegral asubboost colormatrix epx hsvkey mptestsrc scale2ref ssim360 xbr
ainterleave asubcut colorspace eq hue msad scale_rkrga stereo3d xcorrelate
alatency asupercut colorspectrum equalizer huesaturation multiply scdet stereotools xfade
alimiter asuperpass colortemperature erosion hwdownload negate scharr stereowiden xmedian
allpass asuperstop compand estdif hwmap nlmeans scroll streamselect xstack
allrgb atadenoise compensationdelay exposure hwupload nnedi segment super2xsai yadif
allyuv atempo concat extractplanes hysteresis noformat select superequalizer yaepblur
aloop atilt convolution extrastereo identity noise selectivecolor surround yuvtestsrc
alphaextract atrim convolve fade idet normalize sendcmd swaprect zoneplate
alphamerge avectorscope copy feedback il null separatefields swapuv zoompan
amerge avgblur corr fftdnoiz inflate nullsink setdar tblend
ametadata avsynctest cover_rect fftfilt interlace nullsrc setfield telecine
Enabled bsfs:
aac_adtstoasc dca_core evc_frame_merge h264_redundant_pps media100_to_mjpegb mpeg2_metadata pcm_rechunk text2movsub vp9_superframe
av1_frame_merge dts2pts extract_extradata hapqa_extract mjpeg2jpeg mpeg4_unpack_bframes pgs_frame_merge trace_headers vp9_superframe_split
av1_frame_split dump_extradata filter_units hevc_metadata mjpega_dump_header noise prores_metadata truehd_core vvc_metadata
av1_metadata dv_error_marker h264_metadata hevc_mp4toannexb mov2textsub null remove_extradata vp9_metadata vvc_mp4toannexb
chomp eac3_core h264_mp4toannexb imx_dump_header mp3_header_decompress opus_metadata setts vp9_raw_reorder
Enabled indevs:
fbdev kmsgrab lavfi oss v4l2
Enabled outdevs:
fbdev oss v4l2
License: GPL version 3 or later
root@7b108f530ecc:~/ffmpeg-rockchip#
编译目录下的ffmpeg可执行文件就是结果,可以直接查看编、解码器格式支持,比如Rockchip MPP (Media Process Platform) xxx decoder
。
root@7b108f530ecc:~/ffmpeg-rockchip# ./ffmpeg -decoders | grep rkmpp
ffmpeg version 57d5befee9 Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 9 (Ubuntu 9.4.0-1ubuntu1~20.04.2)
configuration: --prefix=/usr --enable-gpl --enable-version3 --enable-libdrm --enable-rkmpp --enable-rkrga
libavutil 58. 29.100 / 58. 29.100
libavcodec 60. 31.102 / 60. 31.102
libavformat 60. 16.100 / 60. 16.100
libavdevice 60. 3.100 / 60. 3.100
libavfilter 9. 12.100 / 9. 12.100
libswscale 7. 5.100 / 7. 5.100
libswresample 4. 12.100 / 4. 12.100
libpostproc 57. 3.100 / 57. 3.100
V..... av1_rkmpp Rockchip MPP (Media Process Platform) AV1 decoder (codec av1)
V..... h263_rkmpp Rockchip MPP (Media Process Platform) H263 decoder (codec h263)
V..... h264_rkmpp Rockchip MPP (Media Process Platform) H264 decoder (codec h264)
V..... hevc_rkmpp Rockchip MPP (Media Process Platform) HEVC decoder (codec hevc)
V..... mpeg1_rkmpp Rockchip MPP (Media Process Platform) MPEG1VIDEO decoder (codec mpeg1video)
V..... mpeg2_rkmpp Rockchip MPP (Media Process Platform) MPEG2VIDEO decoder (codec mpeg2video)
V..... mpeg4_rkmpp Rockchip MPP (Media Process Platform) MPEG4 decoder (codec mpeg4)
V..... vp8_rkmpp Rockchip MPP (Media Process Platform) VP8 decoder (codec vp8)
V..... vp9_rkmpp Rockchip MPP (Media Process Platform) VP9 decoder (codec vp9)
# 查看h264_rkmpp
root@7b108f530ecc:~/ffmpeg-rockchip# ./ffmpeg -h encoder=h264_rkmpp
ffmpeg version 57d5befee9 Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 9 (Ubuntu 9.4.0-1ubuntu1~20.04.2)
configuration: --prefix=/usr --enable-gpl --enable-version3 --enable-libdrm --enable-rkmpp --enable-rkrga
libavutil 58. 29.100 / 58. 29.100
libavcodec 60. 31.102 / 60. 31.102
libavformat 60. 16.100 / 60. 16.100
libavdevice 60. 3.100 / 60. 3.100
libavfilter 9. 12.100 / 9. 12.100
libswscale 7. 5.100 / 7. 5.100
libswresample 4. 12.100 / 4. 12.100
libpostproc 57. 3.100 / 57. 3.100
Encoder h264_rkmpp [Rockchip MPP (Media Process Platform) H264 encoder]:
General capabilities: delay hardware
Threading capabilities: none
Supported hardware devices: rkmpp rkmpp drm
Supported pixel formats: gray yuv420p yuvj420p yuv422p yuvj422p yuv444p yuvj444p nv12 nv21 nv16 nv24 yuyv422 yvyu422 uyvy422 rgb24 bgr24 rgba rgb0 bgra bgr0 argb 0rgb abgr 0bgr drm_prime
h264_rkmpp_encoder AVOptions:
-rc_mode <int> E..V....... Set the encoding rate control mode (from 0 to 5) (default 5)
VBR 0 E..V.......
CBR 1 E..V.......
CQP 2 E..V.......
AVBR 3 E..V.......
-qp_init <int> E..V....... Set the initial QP value (from -1 to 51) (default -1)
-qp_max <int> E..V....... Set the max QP value for P and B frame (from -1 to 51) (default -1)
-qp_min <int> E..V....... Set the min QP value for P and B frame (from -1 to 51) (default -1)
-qp_max_i <int> E..V....... Set the max QP value for I frame (from -1 to 51) (default -1)
-qp_min_i <int> E..V....... Set the min QP value for I frame (from -1 to 51) (default -1)
-profile <int> E..V....... Set the encoding profile restriction (from -1 to 100) (default high)
baseline 66 E..V.......
main 77 E..V.......
high 100 E..V.......
-level <int> E..V....... Set the encoding level restriction (from -99 to 62) (default 0)
1 10 E..V.......
1.1 11 E..V.......
1.2 12 E..V.......
1.3 13 E..V.......
2 20 E..V.......
2.1 21 E..V.......
2.2 22 E..V.......
3 30 E..V.......
3.1 31 E..V.......
3.2 32 E..V.......
4 40 E..V.......
4.1 41 E..V.......
4.2 42 E..V.......
5 50 E..V.......
5.1 51 E..V.......
5.2 52 E..V.......
6 60 E..V.......
6.1 61 E..V.......
6.2 62 E..V.......
-coder <int> E..V....... Set the entropy coder type (from 0 to 1) (default cabac) (from 0 to 1) (default cabac)
cavlc 0 E..V.......
cabac 1 E..V.......
-8x8dct <boolean> E..V....... Set the high profile 8x8 transform (default true)
-udu_sei <boolean> E..V....... Pass on user data unregistered SEI if available (default false)
-prefix_mode <boolean> E..V....... Add prefix NAL between SEI info and encoded bitstream data (default false)
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。