Bir albüm tanıtımı için 38 parçalık bir çalma listesi hazırlıyordum; toplam süre 2 saat 41 dakika, dosyalar FLAC ve bir kısmı 24-bit/96 kHz. Sunum provasında fark ettim: aynı listeyi masaüstünde açtığımda sıra tutarlı, telefonda açtığımda iki parça yer değiştiriyor, arabanın USB’sinde ise tamamen alfabetik sıraya düşüyor. Sorun parçalarda değil, sıralama bilgisinin taşınma biçimindeydi.
Önce her dosyanın etiketlerine baktım. Çalma listesi dosyası M3U8 olarak dışa aktarılıyordu, ama parçaların tracknumber alanı boştu; oynatıcı da bu durumda kendi sıralama kuralını uyguluyordu. Şu komutla eksik olanları çıkardım:
for f in *.flac; do
n=$(metaflac --show-tag=TRACKNUMBER "$f")
[ -z "$n" ] && echo "eksik: $f"
done
Ardından sırayı tek bir kaynaktan üretmeye karar verdim: bir metin dosyası, her satırda göreli yol. Sıra numarasını dosya adına değil, listedeki konuma yazdım ve M3U8’i bu dosyadan ürettim:
awk '{printf "%s\n", $0}' sira.txt > liste.m3u8
Etiketlere de aynı numarayı yazdım (tracknumber ve disctotal), böylece etiket okuyan oynatıcılar da aynı sırayı görüyor. Toplu etiketleme için metaflac --set-tag=TRACKNUMBER=07 dosya.flac yeterliydi; 38 dosyada tek tek çalıştırmak yerine listeyi döngüye verdim.
Bunu neden böyle yaptım: çalma listesi sırası aslında bir meta veri, ama hiçbir oynatıcı bunu tek başına taşımıyor. M3U8 yolu taşır, etiket numarası ise dosyanın kendisini. İkisini aynı kaynaktan üretince çakışma kalmıyor. Bedeli şu: parça ekleyip çıkardığımda numaraları yeniden yazmam gerekiyor, yani sıra artık otomatik değil, elle yönetilen bir şey. 38 parça için kabul edilebilir, 300 parçada değil.
Nerede işe yaramıyor: dosya adında Türkçe karakter varsa bazı araçlar M3U8 yolunu bozuyor; ş ve ğ içeren iki parçada bunu yaşadım, yolları ASCII’ye çevirince düzeldi. Ayrıca akış servisleri bu etiketleri yok sayıyor, orada sıra yalnızca servisin kendi listesinde duruyor. Bir de 24-bit dosyalarda bazı eski oynatıcılar tracknumber alanını okuyup yine de kendi sırasını uyguluyor; o cihazlarda M3U8 tek çözüm.
Sizin listenizde sıra hangi katmanda tutuluyor: dosya adı, etiket mi, yoksa dışa aktarılan liste mi? Hangi oynatıcıda hangisi bozuldu, merak ediyorum.


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