健身视频太枯燥,我做了个替换BGM的小程序!

前言

秋冬季节似乎减肥效率更高,但现实的阻碍往往出人意料,室外跑步差点把人跑没了。罢了,我只能再次捡起B站吃灰收藏夹里的健身视频。可那BGM确实听到吐了,最近喜欢上了陶喆的歌,就想着写个小程序把它们合在一起,给自己来点动力。希望今年过年回家能惊艳所有人吧!

实现

音视频处理使用了:ffmpeg,通过后端生成相应命令并执行。

命令:

shell 复制代码
ffmpeg -y -i source.mp4 -i 1.mp3 -i 2.mp3 -i time.mp3 -filter_complex "[1:a][2:a]concat=n=2:v=0:a=1[bgm];[3]adelay=5000|5000[a1];[3]adelay=10000|10000[a2]; [bgm][a1][a2]amix=3,apad[music]" -map 0:v -map "[music]" -c:v copy result.mp4
  • -y: 覆盖输出文件而无需确认。
  • -i source.mp4: 输入视频文件(source.mp4)。
  • -i 1.mp3 -i 2.mp3 -i time.mp3: 输入三个音频文件,time.mp3指的倒计时音频。
  • -filter_complex: 指定复杂的音视频处理过程。

在 -filter_complex 中的操作:

  • [1:a][2:a]concat=n=2:v=0:a=1[bgm]: 将第二个和第三个音频文件(1.mp3, 2.mp3) 连接为一个背景音乐流 [bgm]。
  • [3]adelay=5000|5000[a1]: 对第四个音频文件(time.mp3) 进行延迟处理,延迟时间为5000毫秒,生成一个新的音频流 [a1]。
  • [3]adelay=10000|10000[a2]: 对第四个音频文件(time.mp3) 进行另一次延迟处理,延迟时间为10000毫秒,生成另一个新的音频流 [a2]。
  • [bgm][a1][a2]amix=3,apad[music]: 将背景音乐流 [bgm] 与延迟处理后的两个音频流 [a1] 和 [a2] 合并为一个混音流 [music]。
  • -map 0:v -map "[music]": 选择输入文件中的视频流和经过处理的音频流 [music]。
  • -c:v copy: 复制输入文件的视频编码。

倒计时:

关于time.mp3,因为健身视频的特性,每个动作之间存在休息时间,time.mp3指的是单个动作即将结束时的倒计时音频!

音频选择:

微信小程序有点奇怪,音频文件好像没法从本地选择,只能选择微信对话记录内的文件。想使用webview又需要企业认证。所以就找了个网易云音乐解析api,至少能够方便点。

END

若未暴富,暴瘦也是一种救赎。祝各位一周瘦八斤!

有兴趣的话可以试试哦!

相关推荐
fengGer的bugs14 小时前
新生儿喂养记录微信小程序:本地存储、四套主题,以及一份可改期的疫苗体检日程
微信小程序
5G微创业18 小时前
去除抖音视频水印的Python实现
python·微信小程序·去水印
WeiXin_DZbishe18 小时前
基于微信小程序的本地闲置物品交易平台-计算机毕设 附源码【课程设计】26825
vue.js·spring boot·python·微信小程序·架构·php·课程设计
小蒜学长20 小时前
基于微信小程序的医院医疗废弃物追溯管理系统(代码+数据库+LW)
java·spring boot·后端·微信小程序·医疗废弃物
霍营_托尼20 小时前
微信小程序点餐项目实战:飞入动画、样式错位、弹窗不消失,7 个前端坑的完整排障记录
javascript·微信小程序·动效
ofoxcoding1 天前
Gemini TTS 与 ElevenLabs 语音合成实测:同一段视频旁白效果对比
ai·ffmpeg·音视频
andrsted1 天前
练题簿在线免费刷题:选择、填空、简答与排序,多种题型练出不同的掌握程度
学习·微信小程序·小程序·学习方法·刷题
andrsted1 天前
练题簿在线免费刷题:Word、PDF 导题与预览补全,把现成资料变成可练习题库
微信小程序·小程序·pdf·word·学习方法·刷题
计算机毕设定制辅导-无忧学长1 天前
《校园食堂在线订餐小程序的设计与实现》
java·vue.js·spring boot·微信小程序·uniapp·校园食堂在线订餐小程序
_大峰_2 天前
索尼 A7M4 误删视频恢复实战:基于原始卡镜像重建 MP4 数据
ffmpeg·数据恢复·音视频·mp4·exfat