FFMPEG  生成测试视频

在研发测试中,我们经常需要从网络或者本地播放一段视频以便验证系统的稳定性。同样的,我们在测试网络视频播放的问题时经常要被问到: 本地播放是否存在问题?因此,这里研究如何生成一个测试视频,并且传到网络上,这样可以方便的得知问题是否和网络有关系。

ffmpeg 可以使用下面的命令产生一个5秒,1280×720名称为LABZPattenX.mp4的

本地视频,编码和压缩使用 Windows 默认方式,这样生成的视频可以直接在Windows中播放:

ffmpeg -f lavfi -i gradients=c0=red:c1=blue:c2=green:n=3:duration=5:size=1280x720:rate=60:type=circular:seed=1,format=rgb0 -c:v libx264 -pix_fmt yuv420p -b:v 6000k LABZPattenX.mp4

视频内容:

为了更好的测试,我用上述方法生成了1小时的视频内容上传到 B站,链接如下:

有兴趣的朋友可以使用如下方法生成1小时的内容

ffmpeg -f lavfi -i gradients=c0=red:c1=blue:c2=green:n=3:duration=3600:size=1920x1080:rate=60:type=circular:seed=1,format=rgb0 -c:v libx264 -pix_fmt yuv420p LABZPatten1.mp4

还可以指定一个较高的码率:

ffmpeg -f lavfi -i gradients=c0=red:c1=blue:c2=green:n=3:duration=3600:size=1920x1080:rate=60:type=circular:seed=1,format=rgb0 -c:v libx264 -pix_fmt yuv420p  -b:v 6000k LABZPatten3.mp4

谢尔宾斯基地毯:

ffmpeg -y -filter_complex  sierpinski=s=1920x1080:type=carpet:rate=60:jump=3:seed=1 -c:v libx264 -pix_fmt yuv420p -b:v 6000k -t 3600 LABPatten2.mp4

上述方法的优点:

  1. 没有版权问题;
  2. 线上线下内容相同;
  3. 可以生成需要的任意分辨率,以及帧率;

网站提供了这次测试对应的 FFMPEG 文件,有兴趣的朋友可以在网站的“常用测试工具以及软件下载”页面看到:

有需要的朋友可以自行尝试。

本文提到的生成的测试视频可以在下面的链接看到:

https://player.bilibili.com/player.html?isOutside=true&aid=114268108231934&bvid=BV1mvfKYJE8A&cid=29141635048&p=1

https://player.bilibili.com/player.html?isOutside=true&aid=114268125010083&bvid=BV1mYfKYDEdb&cid=29141699907&p=1

https://player.bilibili.com/player.html?isOutside=true&aid=114268141785602&bvid=BV1PcfKYCEUA&cid=29141697090&p=1

参考:

  1. https://trac.ffmpeg.org/wiki/FancyFilteringExamples   介绍测试Patten
  2. https://ayosec.github.io/ffmpeg-filters-docs/5.1/Sources/Video/gradients.html gradients 使用参数介绍
  3. https://ffmpeg.org/doxygen/trunk/vsrc__gradients_8c_source.html  gradients源代码参数部分

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注