แยกและรวมเสียงจากวิดีโออีกครั้ง


3

ฉันเบื่อกับ Vegas, Premiere, Pinnacle, SoundForge และบรรณาธิการอื่น ๆ ทั้งหมดที่ฉันได้ลอง

ฉันกำลังพยายามปรับเปลี่ยนเสียงของไฟล์ AVI แต่บรรณาธิการทั้งหมดที่ฉันพยายามยืนยันในการเข้ารหัสวิดีโออีกครั้งเมื่อฉันบันทึกการเปลี่ยนแปลงและลดคุณภาพหรือใช้เวลาหลายชั่วโมง

มีวิธีการแยกสตรีมเสียงจากวิดีโอด้วยffmpegหรือไม่แก้ไขในโปรแกรมแก้ไขเสียงแล้วรวมการเปลี่ยนแปลงที่บันทึกไว้กับวิดีโออีกครั้งหรือไม่

คำตอบ:


6

ครั้งแรกของทั้งหมดให้แน่ใจว่าคุณติดตั้งรุ่นล่าสุดของ FFmpeg จากหน้าดาวน์โหลดของพวกเขา สำหรับ Windows, Linux และ OS X จะมีการสร้างแบบคงที่อยู่ บน OS X คุณสามารถใช้Homebrew (พร้อมbrew install ffmpeg)

แยกเสียงจากวิดีโอ

ในการแยกกระแสข้อมูลเสียงจากไฟล์เราส่งออกไปยังเสียงสเตอริโอ PCM ในคอนเทนเนอร์ WAV เนื่องจากไม่มีการสูญเสียและจะไม่ถูกเข้ารหัสอีกครั้ง:

ffmpeg -i input-file.avi audio.wav

แน่นอนคุณสามารถใช้ตัวแปลงสัญญาณอื่น ๆ เช่น FLAC หรือ ALAC เนื้อหา PCM ใน WAV (หรือ AIFF บน Apple) น่าจะดีที่สุดสำหรับการแก้ไข

ตอนนี้ใช้เอฟเฟกต์ใด ๆ กับกระแสข้อมูลเสียงของคุณตามความจำเป็น

บันทึกเสียงและวิดีโออีกครั้ง

หากต้องการรวมไฟล์เสียงและไฟล์วิดีโออีกครั้งให้เรียกใช้:

ffmpeg -i input-file.avi -i audio.wav -c copy -map 0:0 -map 1:0 output.avi

หมายเหตุ

สิ่งสำคัญคือไฟล์วิดีโอและไฟล์เสียงอยู่ในลำดับที่ถูกต้อง ( -i video, -i audio) สำหรับการจับคู่สตรีม อาจไม่ทำงานเป็นอย่างอื่น

-map 0:0 -map 1:0ตัวเลือกแผนที่จะเสียงจากแฟ้มใส่สอง (ที่1ใน1:0) เพื่อ AVI แทนการใช้เสียงต้นฉบับ นี่คือพารามิเตอร์ที่สำคัญที่สุดที่นี่

ในทางทฤษฎีคุณสามารถเปลี่ยนเป็น-c copyเพียงแค่คัดลอกวิดีโอบิตสตรีม ( -c:v copy) และใช้ตัวแปลงสัญญาณเสียงที่บีบอัดอื่น ๆ เพราะcopyจะพยายามใช้เสียงสเตอริโอ PCM ที่ไม่บีบอัด ในทำนองเดียวกันคุณสามารถของหลักสูตรเพียงบันทึกไฟล์เสียงแก้ไข MP3 และการใช้งานที่แทน copyแต่เก็บไว้

หากต้องการเข้ารหัสไฟล์ WAV สเตอริโอ PCM เป็น MP3 ให้ทำดังนี้:

ffmpeg -i input-file.avi -i audio.wav -c:v copy -c:a libmp3lame -map 0:0 -map 1:0 output.avi

หากไฟล์เสียงของคุณสั้นกว่าไฟล์วิดีโอคุณอาจต้องการวนซ้ำ จัดหา-loop 1ตัวเลือกในการทำเช่นนี้


ขอบคุณ. คำสั่งที่สองให้ข้อผิดพลาด "ไม่ทราบตัวถอดรหัส 'คัดลอก'" ถ้าฉันปล่อยให้มันทำงาน แต่มันเข้ารหัสวิดีโออีกครั้งด้วยคุณภาพที่ต่ำกว่าแทนที่จะเพิ่งผ่านมันไป คำแนะนำใด ๆ?
waitinforatrain

นี่มันแปลก ฉันลองทุกอย่างอีกครั้งก่อนโพสต์คำตอบและฉันใช้การตั้งค่านี้มาก่อน มันควรผ่านไปได้ดี คุณแน่ใจหรือว่าคุณใช้-acodec copy?
slhck

อ๋อ ฉันคิดว่ามันจะทำอย่างไรกับการไม่มีตัวถอดรหัสสำหรับตัวแปลงสัญญาณที่ฉันใช้ (camtasia custom) ดังนั้นฉันจะเข้ารหัสใหม่อีกครั้ง
waitinforatrain

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