美文网首页
FFmpeg滤镜(12)

FFmpeg滤镜(12)

作者: Goning | 来源:发表于2019-03-20 09:39 被阅读0次

    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生成的视频效果

    相关文章

      网友评论

          本文标题:FFmpeg滤镜(12)

          本文链接:https://www.haomeiwen.com/subject/ibtzpqtx.html