上個月整理一批 2016–2019 的現場錄音,來源主要是自己錄的 WAV 和幾場官方直播的音軌。全部丟進同一個資料夾後大約 30 GB、120 首左右,檔名長這樣:20170812_encore_take2.wav、live_2019-03-05_02.flac。問題不是聽不到,是每次想找「那場唱了什麼」都要重新翻資料夾,而且現場演出常有同一首歌在不同場次重複出現,光靠檔名根本分不出來。
我的做法是先建一份最小的清單,不碰音檔本身。用 ffprobe 抓時長跟取樣率,寫進一個 TSV,再手動補上演出日期、場次、曲序:
for f in *.wav *.flac; do
d=$(ffprobe -v quiet -show_entries format=duration -of csv=p=0 "$f")
printf '%s\t%s\n' "$f" "$d"
done > durations.tsv
清單長這樣,order 欄是我自己聽完排的,不是檔名順序:
date\tvenue\torder\ttitle\tfile\tduration
2017-08-12\tLegacy\t03\t某首安可曲\t20170812_encore_take2.wav\t312.4
有了這份 TSV,播放清單就是一行 awk 的事:
awk -F'\t' 'NR>1 {print $5}' setlist.tsv > playlist.m3u8
之後不管用 foobar2000 還是 mpv 都能直接吃。我把這份 TSV 當成唯一真相來源,音檔改名、換資料夾都只改這一欄。
為什麼不用現成的音樂庫管理器?因為現場錄音的 metadata 幾乎是空的,自動補標會把不同場次同一首歌併成一張專輯,反而更亂。手動建一份小清單,代價是 120 首要花一個晚上,好處是每個欄位我都知道它從哪來。
會失效的地方:ffprobe 對某些直播轉出來的檔案會把 duration 抓成 N/A,那幾首我是用播放器看實際長度手動填的。另外 TSV 用 tab 分隔,只要標題裡混進 tab 就會整欄錯位,我後來把標題裡的 tab 一律換成空格。還有一個坑:playlist.m3u8 只寫檔名,資料夾一搬就整份失效,現在我改成寫相對路徑。
你們在整理現場錄音時,是讓檔名帶資訊,還是另外維護一份清單?
0
赞同度 100% · 0 条评论 · 2 阅读

0 条评论
还没有评论,写下第一条。