วิธีที่ดีที่สุดในการแยกเสียงจากไฟล์วิดีโอคืออะไร


19

ฉันเป็นแฟนตัวยงของHandBrake มันเป็นสิ่งที่ดีเลิศของง่าย เลือกไฟล์วิดีโอ (หรือ DVD) เลือกค่าที่ตั้งไว้ล่วงหน้าเลือกเส้นทางออกคลิกเริ่ม ระยะเวลาหนึ่งหลังจากนั้นเทียบกับขนาด / คุณภาพของเนื้อหาและคุณมีไฟล์วิดีโอที่สมบูรณ์แบบที่เหมาะกับสื่อที่คุณเลือก

ฉันกำลังมองหาคุณสมบัติที่คล้ายกันในตัวแปลงเสียงและที่สำคัญกว่านั้นคือตัวแยกเสียง (จากไฟล์วิดีโอที่กำหนด) ฉันชอบที่จะลากไฟล์วิดีโอไปยังแอปพลิเคชั่นระบุว่าฉันต้องการไฟล์เสียงใน AAC ที่อัตราบิตที่กำหนดคลิกเริ่มและปล่อยให้แอปทำส่วนที่เหลือ

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

เคล็ดลับใด ๆ ปพลิเคชัน? ไอเดีย?


ฟิชชันเป็นยูทิลิตี้ที่ดีในการดึงข้อมูลเสียงจาก Video FIle และฉันก็พร้อมที่จะทำตามวิธีการแบบเก่า ๆ โดยการติดตามด้วยตนเอง ไม่ใช่ความชอบของฉัน ฉันมีความคิดหลังจากนั้นเพื่อ Applescript แต่น่าเสียดายที่ดูเหมือนว่าฟิชชันไม่มีพจนานุกรม AS
Jason Salaz

@ Jason ได้พิจารณาการเขียนสคริปต์ UI เพื่อคุยกับ Fission หรือไม่
Nathan Greenstein

Applescript ดั้งเดิมนั้นโดยทั่วไปแล้วเมื่อแอพที่กำหนดไม่มีพจนานุกรมหรือไม่ คลิกเมนูที่ชื่อว่า "ไฟล์" คลิกรายการเมนูชื่อ "บันทึก" อะไรที่มากกว่าหรือน้อยกว่า
Jason Salaz

@ Jason yep แต่อาจจะดีกว่าทำด้วยมือขึ้นอยู่กับจำนวนของสิ่งเหล่านี้ที่คุณวางแผนที่จะทำ
Nathan Greenstein

ฉันเจอรายการในHandbrake คำถามที่พบบ่อยในวันนี้: OSExI just want audio, not video. Can I do that? Not with HandBrake, no. You could just encode the video at a low resolution with a fast low quality encoder like ffmpeg, then extract the audio track. Or you could use น่าเสียดายที่มันจ่ายต่อหนึ่งคลิกเท่านั้น Booooo!
Jason Salaz

คำตอบ:


22

ในที่สุดผมก็พบการผสมผสานที่แน่นอนที่ฉันต้องการและฉันพบในffmpeg

ฉันจะขยายคำถามเล็กน้อยและสะกดความจริงที่ว่าฉันได้ทำงานกับ mp4 ที่มีวิดีโอ / เสียงอยู่ดังนั้นวิดีโอ MP4 (.m4v) และ AAC Audio (.m4a) ฉันต้องการรุ่นที่เป็นเสียงที่ดึงมาจากวิดีโออย่างแน่นอน

ก่อนอื่นมันค่อนข้างง่ายที่จะติดตั้งสิ่งต่าง ๆ เช่น ffmpeg, mplayer, สิ่งต่าง ๆ ที่สร้างขึ้นมาและแพ็คเกจโอเพ่นซอร์สที่คล้ายคลึงกันในปัจจุบัน ระหว่างRudix , Homebrew , MacPortsและ Fink (ไม่มีใครแม้แต่จะใช้ fink อีกต่อไปหรือไม่) ซอฟต์แวร์บุคคลที่สามสามารถติดตั้งได้อย่างรวดเร็ว

ดังนั้นหลังจากติดตั้ง ffmpeg และมีการffmpegเข้าถึงที่บรรทัดคำสั่งฉันวิ่งคำสั่งเช่นนี้:

ffmpeg -i videofile.mp4 -vn -acodec copy audiotrack.m4a

ffmpeg : คำสั่ง

-i videofile.mp4 : ไฟล์วิดีโอต้นฉบับ

-vn : อย่าบันทึก (อย่าพิจารณา) ข้อมูลวิดีโอ

-acodec copy : คัดลอกแหล่งกำเนิดเสียงตาม - นี่คือที่ที่วิเศษทั้งหมดอยู่ ffmpeg จะเขียนข้อมูลเสียงเป็นตัวแปลงสัญญาณที่รองรับต่าง ๆ แต่การระบุการคัดลอกจะนำไปสู่การคัดลอกที่แน่นอนแบบบิตต่อบิต ควบคู่ไปกับการปิดใช้งานวิดีโอผ่าน -vn ทำให้คุณมีแทร็กเสียงโดด ๆ อยู่ในคอนเทนเนอร์ mp4

audiotrack.m4a : ชื่อไฟล์เอาต์พุต

ฉันไม่อยากจะเชื่ออะไรแบบนี้มันยากและซ่อนเร้นมานาน

เนื่องจากฉันตั้งใจจะดึงข้อมูลเสียง aac ออกจากคอนเทนเนอร์ mp4 / วิดีโอฉันจึงเขียนสคริปต์สั้น ๆ เพื่อทำมัน

#!/bin/bash

INFILE="$1"
TMPOUTFILE="${INFILE%.*}"
OUTFILE="${TMPOUTFILE##*/}.m4a"

ffmpeg -i "${INFILE}" -vn -acodec copy "${OUTFILE}"

ตอนนี้ฉันเพียงแค่เรียกrip_m4a_from_mp4 somevideofile.mp4และฉันก็เหลือด้วยรุ่นเสียงเท่านั้นที่มีชื่อไฟล์เดียวกันลงท้ายด้วย m4a แทน

! ง่าย สำหรับฉันแล้ว ไม่มี GUIs เร็วเกินไปนี่เป็นเพียงหนึ่งในสิ่งที่บรรทัดคำสั่งทำได้ดีกว่า


เป็นไปได้คุณสามารถแทนที่m4aบรรทัด 5 ด้วย$2และระบุนามสกุลใหม่บนบรรทัดคำสั่ง ด้วยวิธีนี้ถ้าคุณทำงานกับสิ่งอื่นและรู้ว่าเสียงคืออะไรคุณสามารถระบุได้ ฉันอาจทำสิ่งนี้ด้วยตัวเองและเปลี่ยนชื่อสคริปต์เป็น 'rip_audio_from_video' ทั่วไป!
Jason Salaz

ที่จะเริ่มต้น. แล้วก็ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" brew install ffmpegตอนนี้ทำตามคำแนะนำด้านบน
boyfarrell

หน้าแรก Homebrew เป็นbrew.sh หลังจากทำตามคำแนะนำบนหน้านั้น brew install ffmpeg(ในกรณีที่มีการเปลี่ยนแปลง) และใช่แล้วคุณสามารถทำตามขั้นตอนของฉัน
Jason Salaz

2
หากคุณไม่ต้องการที่จะ Re-encode เสียงในรูปแบบอื่นที่ffmpegสามารถทำในคำสั่งเดียวกัน ตัวอย่างเช่น: ffmpeg -i source_video.avi -vn -ar 44100 -ac 2 -ab 192 -f mp3 sound.mp3( catswhocode.com/blog/19-ffmpeg-commands-for-all-needs )
alexw

1
@alexw ตรวจสอบให้แน่ใจว่าคุณระบุ 192k ไม่ใช่ 192 มิฉะนั้นจะกลับไปใช้การเข้ารหัส 128kbit / s
smets.kevin

12

คุณสามารถทำเช่นนี้ได้โดยตรงใน Finder เริ่มต้นกับ Mac OS X 10.7 (Lion) ตามที่อธิบายไว้ในOSX ประจำวัน

คำตอบสั้น ๆ คือเลือกไฟล์หรือไฟล์ใน Finder แล้วctrlคลิกที่และเลือกบริการ -> เลือกเข้ารหัสไฟล์วิดีโอ

โปรดทราบว่าคุณอาจจำเป็นต้องเปิดใช้บริการนี้ในบานหน้าต่างการตั้งค่าแป้นพิมพ์

ป้อนคำอธิบายรูปภาพที่นี่


ว้าว! สะดวกมาก! อีกเหตุผลที่ใช้ Mac!
Javad Sadeqzadeh

ในกรณีของฉันขนาดของm4aไฟล์ผลลัพธ์เมื่อเปรียบเทียบกับการใช้ffmpegมีขนาดใหญ่กว่า 3 เท่า อาจเป็นปัญหาโดยเฉพาะไฟล์ที่มีขนาดใหญ่ขึ้น
เมียร์

6

ฉันจะลากภาพยนตร์ไปที่ GarageBand GarageBand จะแบ่งไฟล์ออกเป็นเสียงและวิดีโอในเวลาที่คุณสามารถลบแทร็กวิดีโอ (ปล่อยให้คุณมีเพียงแทร็กเสียง)

จากนั้นคุณสามารถคลิกตัวเลือกส่งเพลงไปยัง iTunes ในเมนูแบ่งปัน (ดูรูป) นี้จะเกิดขึ้นกับรูปแบบต่าง ๆ ที่คุณต้องการส่งออกไป

ป้อนคำอธิบายรูปภาพที่นี่

เหนือสิ่งอื่นใดนี่คือฟรี :) เนื่องจาก Mac ทุกเครื่องมาพร้อมกับ GarageBand นอกจากนี้ยังช่วยให้คุณปรับมุมมองของเสียงเช่นความเร็วและระดับเสียง

ต้องบอกว่าถ้าคุณต้องการโซลูชันอัตโนมัติอย่างแท้จริงและสะดวกสบายในบรรทัดคำสั่งกับ Terminal ให้ฉันทราบความคิดเห็นแล้วฉันจะสร้างสคริปต์เพื่ออนุญาตให้คุณทำสิ่งนี้


ฉันไม่ได้ตั้งใจจะทำเช่นนี้ด้วยเหตุผลเดียว (เว้นแต่ฉันผิดโปรดแก้ไขให้ฉัน): การบีบอัดข้อมูลใหม่ ไฟล์วิดีโอมีข้อมูลเสียงที่ถูกบีบอัดอย่างมีนัยสำคัญอยู่แล้วและฉันต้องการเก็บรักษาข้อมูลเสียงดั้งเดิมไว้ให้มากที่สุด คุณสมบัตินักฆ่าของฟิชชันคือ "การแก้ไขและการส่งออกที่ไม่สูญเสีย" อย่าพูดถึงว่า GarageBand ช้าจริง ๆ สำหรับงานเช่นนี้: / อย่างไรก็ตามนี่เป็นวิธีแก้ปัญหาที่ยอดเยี่ยมสำหรับงานที่ตอบสนองเรื่องดังนั้นฉันได้ +1 คุณในแง่มุมนั้น
Jason Salaz

4

Quicktime 7จะทำงานได้อย่างง่ายดายจริงๆ

เพียงแค่เปิดวิดีโอและไปที่ไฟล์ > ส่งออก > เสียงไปที่ AIFF / AU / Wave > เลือกเส้นทางของคุณแล้วเสร็จ! :)


ดูเหมือนว่าฉันอาจจะต้องไปหาแผ่นดิสก์เสือดาวหิมะของฉัน ...
เจสัน Salaz

@vxjasonxv คุณไม่จำเป็นต้อง คุณสามารถดาวน์โหลดผ่านลิงค์ที่ให้ไว้ ..
nuc

โอ้ขอบคุณ! ฉันไม่คิดว่าการเชื่อมโยงจะเป็นจริงในลักษณะนั้น
Jason Salaz

1
ข้อผิดพลาดเดียวกับที่ฉันเพิ่มในคำตอบของ Rob นำไปใช้ที่นี่ ฉันสามารถ "บันทึกคลื่น" ของเสียงได้ แต่มันถูกบีบอัดไว้แล้วและในทางทฤษฎีเพื่อที่จะใช้มันฉันต้องบีบอัดอีกครั้งซึ่งฉันไม่อยากทำ
Jason Salaz

4

QuickTime Player 10 สามารถส่งออกเสียง (โดยไม่ต้องเข้ารหัสซ้ำ) ได้เช่นกัน

เลือกไฟล์> ส่งออก> เฉพาะเสียง ...

ทดสอบบน macOS 10.12 Sierra ด้วย QuickTime Player 10.4


1
แต่นั่นเข้ารหัสเสียงอีกครั้งหรือไม่
Jason Salaz

1
@ JasonSalaz ไม่เพียงแยกออกมา นี่คือ IMHO ตัวเลือกที่ดีกว่า มันค่อนข้างเร็วและรักษาคุณภาพ ยิ่งไปกว่านั้นคุณสามารถเข้ารหัสอีกครั้งในภายหลัง
Melebius

1
น่ากลัว คำตอบ ffmpeg ของฉันยังมีการดึงข้อมูลเท่านั้นดังนั้นจึงอาจใช้เวลามากเท่ากับ QuickTime ข้อดีของ ffmpeg คือไม่มีน้ำหนักในการโหลด UI โดยธรรมชาติดังนั้นจึงเร็วกว่าไฟล์ 1 ไฟล์อย่างไม่ต้องสงสัยและเร็วกว่าหลายไฟล์ แต่นี่เป็นคำตอบที่ดีสำหรับคนที่มีประสบการณ์ใน Automator / Applescripting และอาจไม่สะดวกที่บรรทัดคำสั่งหรือด้วยการเขียนสคริปต์เชลล์
Jason Salaz

0

ฉันเพียงแค่เปิดไฟล์วิดีโอด้วยความกล้าแล้วส่งออกเสียง ฉันสามารถตั้งค่าพารามิเตอร์ไฟล์เสียงที่ส่งออกในระหว่างการส่งออก


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