คุณบอกว่าคุณต้องการที่จะ "แยกเสียงจากพวกเขา (mp3 หรือ ogg)" แต่ถ้าเสียงในไฟล์ mp4 ไม่ใช่หนึ่งในนั้นล่ะ? คุณจะต้องแปลงรหัสต่อไป เหตุใดจึงไม่ปล่อยการตรวจจับรูปแบบเสียงสูงสุด ffmpeg
วิธีแปลงไฟล์หนึ่งไฟล์:
ffmpeg -i videofile.mp4 -vn -acodec libvorbis audiofile.ogg
ในการแปลงไฟล์จำนวนมาก:
for vid in *.mp4; do ffmpeg -i "$vid" -vn -acodec libvorbis "${vid%.mp4}.ogg"; done
แน่นอนคุณสามารถเลือกพารามิเตอร์ ffmpeg ใด ๆ สำหรับการเข้ารหัสเสียงที่คุณต้องการเพื่อกำหนดสิ่งต่าง ๆ เช่นบิตเรตและอื่น ๆ
ใช้-acodec libmp3lame
และเปลี่ยนนามสกุลจาก.ogg
เป็น.mp3
เข้ารหัส mp3
หากสิ่งที่คุณต้องการคือจริงๆดึงเสียงคุณสามารถเพียงแค่ "คัดลอก" -acodec copy
แทร็กเสียงไปยังแฟ้มใช้ แน่นอนความแตกต่างที่สำคัญคือการแปลงรหัสช้าและใช้ซีพียูมากในขณะที่การคัดลอกนั้นรวดเร็วมากเพราะคุณเพิ่งย้ายไบต์จากไฟล์หนึ่งไปอีกไฟล์หนึ่ง ต่อไปนี้เป็นวิธีคัดลอกแทร็กเสียง (สมมติว่าอยู่ในรูปแบบ MP3):
ffmpeg -i videofile.mp4 -vn -acodec copy audiofile.mp3
ทราบว่าในกรณีนี้รูปแบบ AudioFile มีเพื่อให้สอดคล้องกับสิ่งที่ภาชนะที่มี (เช่นถ้าเสียงเป็นรูปแบบ AAC, คุณจะพูดaudiofile.aac
) คุณสามารถใช้ffprobe
คำสั่งเพื่อดูตัวแปลงสัญญาณที่คุณมีซึ่งอาจให้ข้อมูลบางอย่าง:
ffprobe -v error -select_streams a:0 -show_entries stream=codec_name -print_format csv=p=0 "videofile.mp4"
วิธีที่เป็นไปได้ในการแยกวิเคราะห์ตัวแปลงสัญญาณเสียงโดยอัตโนมัติและตั้งชื่อไฟล์เสียงตามนั้นจะเป็น:
mkdir -p output
# current directory has to contain at least one .mp4 file
for vid in *.mp4; do
codec="$(ffprobe -v error -select_streams a:0 -show_entries stream=codec_name -print_format csv=p=0 "$vid")"
case "$codec" in
mp3 ) filetype=mp3 ;;
vorbis ) filetype=ogg ;;
* ) filetype= ;;
esac
if [ "$filetype" ]; then
ffmpeg -i "$vid" -vn -acodec copy output/"${vid%.*}"."$filetype"
else
ffmpeg -i "$vid" -vn -acodec libvorbis output/"${vid%.*}".ogg
done
หมายเหตุ: ไฟล์ที่ส่งออกจะถูกสร้างขึ้นในไดเรกทอรีย่อยoutput
มันจะสร้างขึ้นในการเริ่มต้น (ถ้าจำเป็น) สำหรับตัวแปลงสัญญาณอื่นที่ไม่ใช่ mp3 และ vorbis จะแปลงเสียงเป็น ogg Ubuntu 14.04 ไม่มี ffmpeg ในคลังเก็บมาตรฐาน แต่คุณสามารถเพิ่มที่เก็บ ppa: mc3man / trusty-media และติดตั้งแพ็คเกจ ffmpeg เพื่อรับซอฟต์แวร์ที่จำเป็น ดูรายละเอียดที่นี่