【发布时间】:2019-06-28 03:36:54
【问题描述】:
我有一个脚本,它可以将 mp3 文件拆分为更小的文件,并对它们进行递增编号。我现在也在尝试逐步增加 -metadata title 数值和 -metadata track 数值,但 ffmpeg 将所有内容视为字符串。我遇到的问题是。
ffmpeg -i "$f" -f segment -segment_time 1200 -ar 22050 -ac 1 -metadata title="$%03d-$fn.mp3" -metadata track="$%02d" "$splitdirname/%03d-$fn.mp3" #split every 20mins
如果您查看创建的元数据标题,它会显示 $%03d-title_of_file.mp3 我正在尝试让元数据标题像 001-title_of_file.mp3、002-title_of_file.mp3、003-title_of_file.mp3、...
我正在使用的完整脚本如下:
#!/bin/bash
#run using bash mp3spl.sh
currentdir="$(pwd)" #get current directory
for f in *.mp3 # only look for mp3 files
do
#fn=`echo "$1" | cut -d'.' -f1` #get just the filename no extension
fn=$(basename "$f" | cut -d'.' -f1) #get just the filename no extension
echo "($fn)"
splitdirname="$currentdir/split-$fn" #sub directory with correct names
#echo "splitdirname $splitdirname"
mkdir -p "$splitdirname" #make split directory
#echo "Processing $f"
ffmpeg -i "$1" 2> tmp.txt
ffmpeg -i "$f" -f segment -segment_time 1200 -ar 22050 -ac 1 -metadata title="$%03d-$fn.mp3" -metadata track="$%02d" "$splitdirname/%03d-$fn.mp3" #split every 20mins
#rm tmp.txt
done
与 ffmpeg 一起使用时,使用 -metadata title="$%03d-$fn.mp3" -metadata track="$%02d" 不会创建带前导零的增量数字。
【问题讨论】:
-
你为什么期望
$%03d是 a) 填充一个数字 b) 递增? -
@slhck %03d-$fn.mp3 将使用 ffmpeg 创建带有前导零但不在 -metadata 标记中使用的增量数字