ฉันใช้ ffmpeg เพื่อแยกไฟล์เสียงจากไฟล์วิดีโอ:
ffmpeg -i video.mp4 -vn -acodec copy audio.aac
สิ่งนี้จะสร้างไฟล์เสียงที่สะอาด แต่ไม่มีเมทาดาทาใด ๆ
ในการเพิ่มข้อมูลเมตา ffmpeg มีตัวเลือกบรรทัดคำสั่ง:
ffmpeg -i video.mp4 -vn -acodec copy -metadata title="My Title" audio.aac
สิ่งนี้จะทำงานโดยไม่มีข้อผิดพลาด แต่เมื่อไฟล์เอาต์พุตถูกตรวจสอบด้วย ffprobe มันจะไม่มีเมตาแท็กเลย
หากคอนเทนเนอร์เอาต์พุตเปลี่ยนเป็น mp4 เมทาดาทาสามารถตั้งค่าและปรากฏในไฟล์เอาต์พุต:
ffmpeg -i video.mp4 -vn -acodec copy -metadata title="My Title" audio.mp4
นี่คือบิตที่น่าสนใจ; ถ้าฉันใช้ Banshee เพื่อแก้ไขข้อมูลเมตาของไฟล์. aac ที่มีอยู่แล้วใช้ ffmpeg เพื่อประมวลผลไฟล์ในลักษณะเดียวกันเมตาดาต้าดั้งเดิมจะถูกคัดลอกไปยังไฟล์. aac ใหม่ได้สำเร็จ
ffmpeg -i metadata.aac -vn -acodec copy audio.aac
แต่ความพยายามในการเปลี่ยนข้อมูลเมตาไม่มีผล:
ffmpeg -i metadata.aac -vn -acodec copy -metadata title="My Title" audio.aac
ดังนั้นดูเหมือนว่าคอนเทนเนอร์. aac สามารถเก็บข้อมูลเมตาและ ffmpeg สามารถคัดลอกจากอินพุตไปยังเอาต์พุต แต่ไม่สามารถแก้ไขได้เมื่อใช้ตัวแปลงสัญญาณคัดลอก
ไม่มีใครรู้วิธีรับ ffmpeg เพื่อแก้ไข metadata ใน aac container โดยไม่ต้องทำการ reencoding?
อีกวิธีหนึ่งมีเครื่องมือทั่วไปอื่นที่ฉันสามารถใช้เพื่อตั้งค่าเมทาดาทาหลังจากประมวลผลไฟล์แล้วหรือไม่
ขอบคุณมาก. คริส