วิธีใช้ ffmpeg เพื่อเพิ่มข้อมูลเมตาไปยังไฟล์ AAC โดยไม่ต้องเข้ารหัสใหม่


13

ฉันใช้ 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?

อีกวิธีหนึ่งมีเครื่องมือทั่วไปอื่นที่ฉันสามารถใช้เพื่อตั้งค่าเมทาดาทาหลังจากประมวลผลไฟล์แล้วหรือไม่

ขอบคุณมาก. คริส

คำตอบ:


12

เป้าหมายคือการสร้างไฟล์เสียงอย่างเดียวจากไฟล์วิดีโอโดยไม่ต้องเข้ารหัสซ้ำและเพื่อแนะนำเมต้าดาต้าที่เครื่องเล่นสื่อรู้จัก สภาพแวดล้อมคือ Debian GNU / Linux

ฉันอยากจะขอบคุณ @ bootload ที่ทำให้ฉันถูกทางเพื่อค้นหาคำตอบ

ffmpeg ไม่สนับสนุนการเพิ่มแท็กข้อมูลเมตาลงในไฟล์เอาต์พุต. AAC อย่างไรก็ตามนี่เป็นวิธีแก้ไขสองวิธีที่เป็นไปได้

  1. ยูทิลิตี้บรรทัดคำสั่ง id3 และ id3v2 (พร้อมใช้งานจากที่เก็บมาตรฐาน) สามารถใช้แท็ก id3 กับไฟล์เสียง. aac Nautilus รู้จักทั้งสไตล์แท็ก v1 และ v2 ดังนั้นจึงควรใช้งานได้ แท็กเดียวกันได้รับการยอมรับจากเครื่องเล่นสื่อบันจี้
id3v2 -t "My Title" audio.aac
  1. ffmpeg สามารถเพิ่มข้อมูลเมตาลงในคอนเทนเนอร์ MP4 ได้ แต่ส่วนขยาย. mp4 ใน Nautilus จะปรากฏเป็นไฟล์วิดีโอ Apple Inc. ใช้ส่วนขยายที่ไม่ได้มาตรฐานไปยังคอนเทนเนอร์ MP4 เพื่อแยกความแตกต่างของไฟล์วิดีโอ (.m4v) จากไฟล์เสียง (.m4a) ส่วนขยายเหล่านี้ได้รับการยอมรับภายใต้ Debian โดย Nautilus และโดย ffmpeg ดังนั้น,
ffmpeg -i video.mp4 -vn -acodec copy -metadata title="My Title" audio.m4a

จะสร้างไฟล์เสียงอย่างเดียวที่รู้จักโดย Nautilus และ ffmpeg สามารถเพิ่มข้อมูลเมตาลงในคอนเทนเนอร์ได้อย่างปลอดภัย


3

ฮาร์ดแวร์ที่ตั้งใจไว้คืออะไร? ใช้สำหรับอุปกรณ์ Apple iP * หรือไม่ หากเป็นเช่นนั้นให้ลองhttp://atomicparsley.sourceforge.net/ หรือ ลองใช้http://ffmpeg.org/ffmpeg.html#Examplesโดยใช้วิธีการ"UTF-8-encoded INI" mex / demux (แตกข้อมูลเมตาเป็นไฟล์ utf8 & แก้ไข & แทรกใหม่)


สภาพแวดล้อมคือ Debian GNU / Linux
Chris C.

เอกสาร ffmpeg ไม่ชัดเจนเกี่ยวกับวิธีการใช้เมตาดาต้า muxer / demuxer แม้ว่าลิงค์เอกสารจะแสดงรูปแบบไฟล์ผลลัพธ์ คุณสามารถให้ตัวอย่างบรรทัดคำสั่งว่าจะทำสิ่งนี้ได้อย่างไร ขอบคุณ
Chris C.

@ChrisC ดูไม่ดี โดยไม่ต้องลุยรายละเอียด aac & ffmpeg เพื่อตรวจสอบว่าดูเหมือนว่าเมตาดาต้าที่ได้รับเกียรติจาก ffmpeg อยู่ในรายการที่นี่ ~ wiki.multimedia.cx/index.php?title=FFmpeg_Metadata#Basic_Usageและ ACC ไม่ได้รับการสนับสนุน การใช้ cli สำหรับรูปแบบอื่นคุณทำตามรูปแบบ'ffmpeg -i track05.wav -metadata title = "Track # 5" -metadata author = "ศิลปินที่ไม่รู้จัก" -acodec alac -y track05.m4aเช่น รูปแบบทั่วไปคือffmpeg -i <SOURCE> -metadata key = "value" <SOURCE> นี่เป็นกระบวนการที่คุณปฏิบัติตาม :(
bootload

ให้ได้เฉพาะเจาะจงมาก รูปแบบของข้อมูลเมตาที่คุณต้องการเข้ารหัสคืออะไร เรากำลังพูดถึง ID3 หรือไม่? คุณจะใช้รูปแบบใดในที่สุด
bootload

ฉันลองดูเพื่อดูว่า AAC รองรับอะไร อาจไม่มีรูปแบบเป็นทางการ แต่ภายใน Debian ID3V1 และ ID3V2 ทั้งคู่ดูเหมือนจะใช้งานได้ Banshee ดูเหมือนจะวางแท็ก ID3V2 เมื่อใช้โปรแกรมแก้ไข
Chris C.

1

MP4Box (ส่วนหนึ่งของแพคเกจ "gpac") จะห่อหุ้มไฟล์ AAC ด้วยคอนเทนเนอร์ MP4 โดยไม่มีการเปลี่ยนแปลงข้อมูลต้นฉบับ ข้อมูลเมตาสามารถเพิ่มได้โดยใช้ซอฟต์แวร์การแท็กชิ้นใดก็ได้:

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