大家好啊,这是本公众号今年第一篇文章,如果经常关顾我B站频道的小伙伴应该知道,我是一名模飞(模拟飞行)爱好者,这几天放假回家把家里的直播系统给架了起来,搞了套外设直播开飞机,在开的时候我就在想,如果能把这游戏里的好风景录下来做成录播岂不是非常好,于是就有了今天这篇文章。
一开始我都是早上录完视频,中午剪视频,下午上传到服务器里,最后推流到B站这样,但后来想了想,这样子太麻烦了,于是就直接把视频死循环了,现在进入我的直播间就会看到一个长达7小时并且充满着浓厚的二次元音乐飞机直播画面,但后来想了想,一直这样也不是一个办法,既然直播播的内容都没意义了,那就让他没意义到底吧。
所以我就打算做一个时长长达24小时无意义的视频,然后写个bash脚本一直推流,这种24小时直播在B站挺多的hhh,感兴趣的可以去看看
一开始我是使用AE+PR+Vegas三者分别生成24小时的视频,后来发现这三款生成的视频都太大了,平均都在5-6t左右(960x720, 5fps,1Ac,1Vc)
这样下去肯定不是个办法,于是就打算用ffmpeg生成一个视频,这种直接用命令生成的视频会快一些,而且操作性更强,唯一的缺点就是没有可视化,代码的储备量会大些。
众所周知,ffmpeg是一款十分强大的工具,无论是在CTF-Misc里或者是其他开发/剪辑用途,都是非常牛逼的玩意,并且大多数人用到它可能都是因为要把一个某个文件还原成一个完整的视频
所以我就用这款工具生成了一个死循环视频
前排提醒,ffmpeg进阶用法可以查看官方文档:https://ffmpeg.org/ffmpeg-utils.html
我事先准备了一个非常长的音频文件(早知道换成Unwelcome School ToT),里边除了开头和结尾不一样之外,其他内容都是一样的,然后准备了一张小桃的gif动图
现在我的需求是在屏幕中间显示一个计时器,用来显示当前播放的时长,然后把背景音乐和GIF图插进去,最后生成一个86400秒(24小时)的视频
废话不多说,直接开干
我首先创建了一个纯色背景,然后用drawtext过滤器把文本叠加到背景上,这步骤很简单,具体的命令如下
ffmpeg
-f lavfi
-i "color=color=white:s=500x500:r=5"
-vf "drawtext=fontfile=genshin.ttf:text='IceCliffs':fontcolor=black:fontsize=20"
-t 100
output.mp4
生成的画面是这样子的,命令很好理解,这里不做说明
接下来就是把图片插到背景里了,如果图片太大可以先用ScreenToGif裁剪下GIF图
我这边最后裁剪成160x141大小,这样输出的图片不会太大也不会太小
然后就是把这图片插到背景里,这里我用了过滤器,ffmpeg的过滤器非常牛逼,你可以用它干很多事情
ffmpeg
-f lavfi
-i "color=color=white:s=500x500:r=5"
-ignore_loop 0 -i taotao.gif # 读取GIF图片做循环
-filter_complex "[0:v]scale=160x141,drawtext=fontfile=genshin.ttf:text='IceCliffs':fontcolor=black:fontsize=20" # 自行理解
-t 100
output_1.mp4
生成的画面是这样子的
然后再把音频给插进去,然后写个计时器,最后把文字居中一下就大功告成了,这里我分了两步,我先把视频给生成出来然后再把BGM给加上去,具体的命令如下
ffmpeg
-ignore_loop 0 -i taotao.gif
-f lavfi
-i "color=color=black:s=800x800" # 如果觉得800x800太大了,可以换小一点
-filter_complex "[0:v]scale=560x541,drawtext=fontfile=genshin.ttf:text='%{pts:hms}':fontsize=40:fontcolor=white:x=(w-text_w)/2:y=(h-text_h)/2"
-t 86400
output_5.mp4
最后出来是这个效果
然后加个BGM
ffmpeg -an -i output_5.mp4 -stream_loop -1 -i bgm.mp3 -c:v copy -t 41531 -y final.mp4
最后可以看到生成出来的文件才3个吉比特左右,真有逻辑!真是有趣!哇!FFMPEG!哇!
最后推流到B站即可
真有逻辑!真是有趣!哇!FFMPEG!哇!
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...