【VisionFive 2:集成3D GPU RISC-V单板计算机】+12.ffmpeg视频编码测试(zmj)
本节测试赛昉科技“昉·星光 2”开发板的FFMPEG视频编码功能。
1. FFMPEG简介
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。
2. FFMPEG视频生成
此处测试了诸如时钟、彩条、雪花、曼德尔曲线、画中画(PIP)等多种分辨率模式。详情可以查看压缩包“sh-ffmpeg_generate_video.rar”内的脚本。
(播放器使用的是VideoLAN)
//------播放器VideoLan免费版软件下载地址
https://www.videolan.org/
//------视频生成测试脚本:
//---示例:生成曼德尔曲线
ffmpeg -re -f lavfi -i mandelbrot=size=1280x720:rate=25 -vcodec libx264 -r:v 25 a9_mandelbrot_720p.mp4
//---其他脚本:
详见压缩包sh-ffmpeg_generate_video.zip
//------测试脚本:
//------a9_mandelbrot_720p
3. 画中画(视频、LOGO、文字)的功能
画中画功能包括视频画中画、 LOGO画中画、TXT画中画的功能测试。
//------生成视频
# a2_testsrc2_qcif : 176x144
ffmpeg -re -f lavfi -i testsrc2=duration=21.0:size=qcif:rate=25 -vcodec libx264 -r:v 25 a2_qcif.mp4
//------场排列-v
# a2_testsrc2_v_pip
# ffmpeg -re -f lavfi -i testsrc2 -vf \
# \ " split=4[a][b][c][d]; \
# \ [b]lutrgb=g=0:b=0[x]; \
# \ [c]lutrgb=r=0:b=0[y]; \
# \ [d]lutrgb=r=0:g=0[z]; \
# \ [a][x][y][z]hstack=4 " \
# \ -c:v libx264 a2_v_pip.flv
ffmpeg -re -f lavfi -i testsrc2 -vf "split=4[a][b][c][d];[b]lutrgb=g=0:b=0[x];[c]lutrgb=r=0:b=0[y];[d]lutrgb=r=0:g=0[z];[a][x][y][z]vstack=4" -c:v libx264 a2_v_pip.flv
//------行排列-h
# a2_testsrc2_h_pip : default
# ffmpeg -re -f lavfi -i testsrc2 -vf \
# \ " split=4[a][b][c][d]; \
# \ [b]lutrgb=g=0:b=0[x]; \
# \ [c]lutrgb=r=0:b=0[y]; \
# \ [d]lutrgb=r=0:g=0[z]; \
# \ [a][x][y][z]hstack=4 " \
# \ -c:v libx264 a2_h_pip.flv
ffmpeg -re -f lavfi -i testsrc2 -vf "split=4[a][b][c][d];[b]lutrgb=g=0:b=0[x];[c]lutrgb=r=0:b=0[y];[d]lutrgb=r=0:g=0[z];[a][x][y][z]hstack=4" -c:v libx264 a2_h_pip.flv
//------LOGO画中画
ffmpeg -i zg_vs_zy.mp4 -vf "movie=logo.png,colorkey=black:1.0:1.0 [wm]; [in] [wm] overlay=30:10 [out]" zg_vs_zy-logo.mp4
//------hello_world
# a1_helloworld
ffmpeg -i color.mp4 -vf "drawtext=fontsize=100:fontfile=FreeSerif.ttf:text='hello world':x=20:y=20" output_txt.mp4
//------视频:视频拼接和视频画中画
//------LOGO:添加Logo图片到视频中
//------TXT(hello_world):添加hello_world文字
4. 测试视频
此处上传两个视频,分别演示生成曼德尔曲线视频和视频画中画。对于开发者来讲,建议使用播放器VideoLan。
//------播放器VideoLan免费版软件下载地址
https://www.videolan.org/
//------生成曼德尔曲线视频:
a9_mandelbrot_720p
//------视频画中画:
red_snow_moving
//------END