FFmpeg生成测试元数据
FFmpeg不但可以处理音视频文件,还可以生成音视频文件,可以通过lavfi设备虚拟音视频源数据。
1、FFmpeg生成音视频测试流
在FFmpeg中,可以通过lavfi虚拟音频源的abuffer、aevalsrc、anullsrc、flite、anoisesrc、sinc滤镜生成音频流。
ffmpeg -re -f lavfi -i abuffer=sample_rate=44100:sample_fmt=s16p:channel_layout=stereo -acodec aac -y output.aac
命令行执行后,FFmpeg会根据lavfi设备输入的abuffer中定义的采样率、格式、声道布局,通过AAC编码,生成AAC音频文件。
ffmpeg -re -f lavfi "aevalsrc=sin(420*2*PI*t)|cos(430*2*PI*t):c=FC|BC" -acodec aac output.aac
命令行执行后,音频为使用aevalsrc生成的双通道音频,输出为output.aac。
也可以anullsrc、flite、anoisesrc、sinc虚拟输入的音频设备生成音频流,与以上的abuffer、aevalsrc两种输入类似。
2、FFmpeg生成视频测试流
在使用FFmpeg测试流媒体时,如果没有输入文件,则可以通过FFmpeg虚拟设备虚拟出来一个输入视频流,可以通过FFmpeg模拟多种视频源:allrgb、allyuv、color、haldclutsrc、nullsrc、rgbtestsrc、smptebars、smptehdbars、testsrc、testsrc2、yuvtestsrc。
举例如下:
ffmpeg -re -f lavfi -i testsrc=duration=5.3:size=qcif:rate=25 -vcodec libx264 -r:v 25 output.mp4
命令行执行后,FFmpeg会根据testsrc生成长度为5.3秒、图像大小为QCIF分辨率、帧率为25fps的视频图像数据,并编码成H.264,然后输出output.mp4视频文件。
testsrc生成的视频效果ffmpeg -re -f lavfi -i testsrc2=duration=5.3:size=qcif:rate=25 -vcodec libx264 -r:v 25 output.mp4
命令行执行后,会根据testsrc2生成一个视频图像内容,其他参数与testsrc相同。
testsrc2生成的视频效果
ffmpeg -re -f lavfi -i color=c=red@0.2:s=qcif:r=25 -vcodec libx264 -r:v 25 output.mp4
命令行执行后,会使用color作为视频源,图像内容为纯红色,编码为H.264。
color生成的视频效果ffmpeg -re -f lavfi -i "nullsrc=s=256x256,geq=random(1)*255:128:128" -vcodec libx264 -r:v 25 output.mp4
命令行执行后,会使用nullsrc作为视频源,宽高为256x256,数据为随机雪花样。
nullsrc生成的视频效果
网友评论