audio - 如何使用 ffmpeg 多次连接一个 mp3 文件(包括交叉淡入淡出)?
问题描述
我尝试使用(一个)ffmpeg 命令制作一个 bash 文件,其中单个 mp3 文件(假设持续时间为两分钟)将延长到例如 8 小时的持续时间。由于 mp3 文件的前后总是有这些静音间隙,为了使其无缝循环,我需要使用交叉淡入淡出。如果没有一个巨大的命令,我怎么能做到这一点:
ffmpeg -i same.mp3 -i same.mp3 -i same.mp3 ....(数百次) -filter_complex "[0][1]acrossfade=d=5:c1=exp:c2=exp[a01] ...等(数百次)输出.mp3
解决方案
未经过 8 小时测试:
#!/bin/bash
TOT=160
f="input 3.mp3"
INP=("-i" "$f")
FLC="[0:a]asplit=${TOT}"
for (( i=1; i<=$TOT; i++ )); do
FLC+="[${i}a]"
done
PDC="[1a]"
for (( i=2; i<=$TOT; i++ )); do
PDA="[${i}a]"
FLC+=";${PDC}${PDA}acrossfade=d=5"
PDC="[${i}xa]"
FLC+="${PDC}"
done
echo $FLC
echo ""
ffmpeg "${INP[@]}" -filter_complex "$FLC" -map $PDC -c:a libmp3lame -b:a 320k /tmp/output.mp3 -y
mpv /tmp/output.mp3
变量 TOT = 8 小时 div 输入持续时间
推荐阅读
- unique-id - 为所有 Pod 全局分配每个 Pod 8 位唯一 ID
- node.js - 为 pdf 文件创建读取流以上传到 s3 存储桶
- spring-boot - 为什么使用 RedisTemplate 在 springboot 中抛出 NoSuchMethodError?
- r - 通过使用 R 选择上一行中的值来填充缺失值
- elasticsearch - Elasticsearch:为什么无法通过“term”查询找到但可以通过“match”查询找到?
- android - 如何将另一个片段添加到 ViewPager2 中?
- swift - Swift:使用 base64 编码的字符串填充错误
- angular - 如何为 tabPanel 定义静态索引
- oracle-apex - apex oracle 19.1 中的照片滑块
- rabbitmq - NestJS 微服务异常