当前位置:网站首页>使用FFmpeg来批量生成单图+单音频的一图流视频
使用FFmpeg来批量生成单图+单音频的一图流视频
2022-07-28 06:11:00 【昨天那个谁谁】
需求:因为时不时会在B站上分享一些游戏BGM合集,拿到多个音频文件之后要先选一张好看的图片,然后逐个音频地与这张图片合成一个静态的视频,这个过程用视频编辑软件来操作的话非常地重复、费事,故考虑使用FFmpeg来转换合成并实现批量操作。
方案一
ffmpeg -i BGM01.mp3 -i cover.png -b:v 2400k -b:a 192k out.mp4-i 参数添加输入的音频和图片, -b:v 和 -b:a 分别用于设置视频和音频的比特率。
这样就把音频和图片合成在一起了。视频在本地播放的时候是没有问题的,声音正常,图片会连续显示,但是仔细看看播放信息可发现一些东西:帧率和位率是0,时长只有40ms。


上传的时候也会提示“转码失败” (因为时长太短):

方案二
ffmpeg -loop 1 -y -i cover.png -i BGM01.MP3 -shortest -r 24 -b:a 2400k -b:a 192k out.mp4我们要做的是让图片不止是有一帧的时长,而是延伸到整个音频的长度,于是这里使用 -loop 来循环播放某个输入的元素,后面跟的1代表使用第一个输入进行循环,同时需要加 -shortest 参数来限制循环的次数,指定视频的时长以输入的中最短的时长为准(也就是音频的长度),否则会无限循环。-r 24则指定帧率。
OK,这回帧率显示正常了,这样生成的视频就可以上传了,可以根据实际需要调整一下码率。

最后就是写一个批量处理的脚本了,可以用任意脚本语言来写,这里用PHP。
<?php
// 请根据操作系统选择一行执行,删除另外一行
system("dir /b *.mp3 > list.txt"); // windows
system("ls *.mp3 > list.txt"); // linux
$list = file_get_contents("list.txt");
$files = explode("\n", $list);
unset($files[count($files) - 1]); // 清除末行空行
foreach($files as $file) {
$filename = substr($file, 0, strlen($file) - 4); //去除文件格式.mp3后缀
system("ffmpeg -hwaccel qsv -loop 1 -y -i cover.png -i \"{$file}\" -shortest -r 24 -b:a 192k \"{$filename}.mp4\"");
}参考
边栏推荐
- ESD防护为何对集成电路如此重要?又该如何防护?
- 【无标题】
- flowable工作流所有业务概念
- [JVM optimization] online JVM tuning practice
- After learning the four redis cluster solutions at one go, each has its own merits
- Principle and configuration of redis master-slave replication
- 深度学习基础宝典---激活函数、Batch Size、归一化
- Learn software testing in two weeks? I was shocked!
- PCB design skills of EMC
- 牛客Mysql——SQL必知必会
猜你喜欢

近红外二区AgzS量子点包裹脱氧核糖核酸DNA|DNA-AgzSQDs(齐岳)

What is the root cause of EMC's problems?

干货|分享一个EMC实际案例及整改过程

华为交换机拆解,学EMC基本操作

03 | 项目部署:如何快速部署一个基于laravel框架开发的网站

DNA modified noble metal nanoparticles | DNA deoxyribonucleic acid modified metal palladium Pd nanoparticles pdnps DNA

常用电子产品行业标准及认证

The net loss of users occurred again, and China Mobile, which lost face, launched ultra-low price packages to win users

EMC之 “不整改好别回来了”

DNA modified noble metal nanoparticles | DNA modified copper nanoparticles cunps-dna | research points
随机推荐
03 | 项目部署:如何快速部署一个基于laravel框架开发的网站
Merge two sorted linked lists - two questions per day
两个链表的第一个公共节点——每日两题
指针进阶练习
非关系型数据库之Redis【Jedis客户端+Jedis连接集群】
Redis的RDB持久化和AOF持久化的底层原理
Eventbus of guava
【干货】32个EMC标准电路分享!
It has been rectified seven times and took half a month. Painful EMC summary
Summary of project experience
常用电子产品行业标准及认证
Near infrared two region agzs quantum dots wrapped deoxyribonucleic acid dna|dna agzsqds (Qiyue)
DNA cuinseqds near infrared CuInSe quantum dots wrapped deoxyribonucleic acid DNA
ArcGIS JS自定义Accessor,并通过watchUtils相关方法watch属性
Which of class A and class B is more stringent in EMC?
Method of hiding scroll bar in wechat applet
链表中倒数第k个节点——双指
【jvm优化超详细】常见的JVM调优场景
Redis configuration and optimization of NoSQL
华为交换机拆解,学EMC基本操作