วิธีการใช้ ffmpeg เพื่อเข้าร่วม MP3 และคัดลอกข้อมูลเมตาในเวลาเดียวกัน?


0

หน้าต่างๆบนอินเทอร์เน็ตพูดคุยเกี่ยวกับวิธีใช้ffmpegเพื่อเข้าร่วม MP3 และคัดลอกแท็ก แต่ดูเหมือนว่าฉันจะไม่สามารถทำงานได้อย่างถูกต้อง สิ่งที่จะเกิดขึ้นก็คือมันจะเข้าร่วม MP3 ทั้งหมดเข้าด้วยกันจากนั้นนำเมทาดาทาแรกของ MP3 เช่นอัลบั้มแทร็คผู้แต่ง ฯลฯ และคัดลอกไปยังไฟล์สุดท้าย

ฉันได้รวบรวมสคริปต์ต่อไปนี้ ในขณะที่รวมไฟล์มันจะไม่คัดลอกเมทาดาทา ฉันคิดว่า-map_metadata 0 -id3v2_version 3 -write_id3v1 1พารามิเตอร์ffmpegจะทำ แต่ก็ไม่เป็นเช่นนั้น ฉันพลาดอะไรไป

#!/usr/bin/env bash

set -e
if [[ $# -eq 0 ]] ; then
    echo "Usage: $0 <output_file> <mp3_file> <mp3_file> ..."
    exit 1
fi
output_file="$1"
shift

queue_file=$(mktemp "${PWD}/queue.XXXXXX")
for m in "$@" ; do
    echo "file '$m'" >> "${queue_file}"
done

cat "${queue_file}"
ffmpeg -f concat -safe 0 -i "${queue_file}" -c copy -map_metadata 0 -id3v2_version 3 -write_id3v1 1 "${output_file}"
rm "${queue_file}"

นำส่งไฟล์แรกเป็นเพียงเช่นการป้อนข้อมูลที่ 2 และและการใช้งาน-i "${queue_file}" -i "first_file" -map_metadata 1
Gyan

@Gyan ท้ายนี้แล้วจะได้รับการคัดลอกไฟล์แรกไปยังไฟล์ที่ส่งออกสองครั้งหรือไม่?
Roxy

ไม่ไม่มีสตรีมแมปดังนั้น ffmpeg จะเลือกหนึ่งอินพุตและเนื่องจากคุณสมบัติสตรีมเหมือนกันมันจะเลือกอันแรก
Gyan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.