我有2个wav文件wav1和wav2.我想每45秒播放一次wav2 使用FFmpeg在wav1上。
答案 0 :(得分:2)
好的,首先创建一个45秒的文件来循环wav2
number = number.replaceAll("\\D+", ""); //Remove non numeric values
现在,混合
ffmpeg -i wav2 -af apad -t 45 wav2-padded.wav
答案 1 :(得分:0)
我认为这应该实现你想要的目标
#!/bin/bash
interval_millis=45000
regex="Duration: ([0-9:.]+)"
[[ $(ffmpeg -i $1 2>&1) =~ $regex ]]
duration_millis=$(echo "${BASH_REMATCH[1]}" | \
awk -F: '{ print 1000 * (($1 * 3600) + ($2 * 60) + $3) }')
duration_counter=$interval_millis
i=1
while [[ $duration_counter -lt $duration_millis ]]; do
inputs+=" -i $2"
delay_params+="[$i]adelay=$duration_counter[del$i];"
amix_params+="[del$i]"
((i++))
((duration_counter += $interval_millis))
done
ffmpeg -i $1 $inputs -filter_complex \
"$delay_params[0]${amix_params}amix=inputs=$i:duration=first" out.wav
我在2015年版的ffmpeg上遇到adelay
的问题,所以请确保你有最新的版本来运行它。您将脚本称为
./script.sh long-file short-file