แยกไฟล์เสียงเป็นชิ้นตามความยาวที่ระบุ


16

ฉันมีไฟล์เสียงยาวหลายไฟล์ (แต่ละ 80 นาที; m4a) และต้องการให้แบ่งเป็น 5 หรือ 10 นาที

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

แน่นอนว่าบางสิ่งเป็นไปโดยอัตโนมัติและบรรทัดคำสั่งก็ใช้ได้ดีกว่า

ขอบคุณล่วงหน้า!

คำตอบ:


20

ด้วย ffmpeg ล่าสุด (ดาวน์โหลดบิลด์สแตติกจากที่นี่ ):

ffmpeg -i in.m4a -f segment -segment_time 300 -c copy out%03d.m4a

นี่ใช้เซ็กเมนต์ muxer และคัดลอกบิตสตรีม -vnหากไฟล์ของคุณมีกระแสข้อมูลเสียงและวิดีโอคุณสามารถปิดการใช้งานวิดีโอสตรีมด้วย


นี่เป็นสายการบินเดียวที่คุณต้องติดตั้งRubyและFFmpeg :

ruby -e '(0..4500).step(300) { |x| system "ffmpeg -ss #{x} -i in.m4a -c copy -t 300 out-#{x}.m4a"}'

เพียงแค่ดำเนินการว่าในโฟลเดอร์เดียวกันที่in.m4aเป็น มันจะคัดลอกบิตสตรีมเสียงดังนั้นการดำเนินการนี้อาจใช้เวลาน้อยกว่าสองสามวินาที

อธิบาย:

  • 4800 วินาทีคือความยาวของไฟล์เสียง (80 นาที× 60 วินาที) ดังนั้นการแยกล่าสุดของเราคือ 4500 (4800 - 300 วินาที)
  • เราไปจาก 0 ถึง 4500 และเราแยกทุก ๆ 300 วินาที (5 นาที× 60 วินาที)
  • FFmpeg จะเริ่มในเวลาที่ระบุโดย -ss
  • และมันจะคัดลอกตามเวลาที่กำหนดโดย -t
  • มันจะเขียนไฟล์ที่ส่งออกหลายที่เรียกว่าout-<x>.mp4ที่<x>เป็นเวลาเริ่มต้นในไม่กี่วินาที

ขอบคุณ! คำสั่งสำหรับ UNIX ของคุณหรือไม่มันทำงานบน Windows ได้หรือไม่ ฉันมีการติดตั้ง Cygwin ดังนั้นมันจึงไม่สำคัญ แต่แค่สงสัย ฉันจะลองเมื่อฉันกลับถึงบ้าน
Andrew Cheong

วิธีนี้ใช้ได้กับ Linux (และ Unixes ที่ติดตั้ง Ruby) และมันควรใช้กับ Windows ด้วย - คุณต้องใช้ Ruby และ FFmpeg แต่คุณไม่จำเป็นต้องใช้ Cygwin มีRuby InstallerและFFmpeg ที่สามารถเรียกใช้งานได้สำหรับ Windows เช่นกัน ตอนนี้คำสั่ง FFmpeg อาจเป็นแบบอัตโนมัติโดยไม่ต้องใช้ Ruby, ใช้แบตช์ไฟล์ Windows หรือ PowerShell แต่ฉันไม่ใช่ผู้ใช้ Windows ดังนั้นฉันจึงใช้ Ruby (เพราะมาพร้อมกับ Linux และ OS X) อาจจะมีคนที่มีประสบการณ์แบทช์ของ Windows สามารถเขียนคำสั่ง Ruby ข้างต้นอีกครั้งได้ไหม
slhck

ฉันมี Cygwin เพราะฉันไม่คุ้นเคยกับบรรทัดรับคำสั่งของ Windows ฉันคิดว่าฉันติดตั้งทับทิมและ ffmpeg อยู่ที่นั่นแล้วดังนั้นฉันจึงควรใช้คำสั่งของคุณ แต่ใช่รุ่น Windows อาจช่วยคนอื่นดูคำถามนี้ +1 สำหรับตอนนี้ จะยอมรับเมื่อฉันลอง
Andrew Cheong

2
หากเช่นฉันไฟล์ m4a ของคุณมีสตรีมวิดีโอ (ในกรณีของฉันเป็นภาพเดียว) จากนั้นคุณต้องเพิ่ม-vnสวิตช์เพื่อเลือกเฉพาะสตรีมเสียง หากคุณต้องการเก็บสตรีมวิดีโอคุณจะต้องส่งออกไปยังไฟล์ที่มีนามสกุล. mp4
โบสถ์ Rob

2

ฉันกำลังมองหาวิธีแก้ปัญหาสำหรับตัวเองนี้ วิธีที่ง่ายที่สุดที่ฉันพบคือทำผ่านMP4Box :

mp4box -split 300 infile.m4a

โดยที่ "300" คือเวลาในหน่วยวินาที MP4Box จะเขียนไฟล์เอาต์พุตที่มีหมายเลขกำกับโดยอัตโนมัติ

(คุณไม่จำเป็นต้องติดตั้งแอปพลิเคชัน GPAC ขนาดใหญ่ทั้งไฟล์เหล่านี้เป็นไฟล์ที่คุณสามารถแยกออกจากไฟล์เก็บถาวรเพื่อให้ทำงานได้: js.dll; libeay32.dll; libgpac.dll; MP4Box.exe; ssleay32.dll)


2

ไม่นานหลังจากที่ถามคำถามนี้ แต่หลังจากที่เล่นกับ Ruby และ ffmpeg ฉันตัดสินใจว่าจะต้องมีวิธีที่ง่ายกว่าในการทำใน Windows และฉันก็พบว่ามี

ดาวน์โหลดและติดตั้ง Audacity

สร้างไฟล์ข้อความที่ไหนสักแห่งที่คุณสามารถค้นหาและวางสตริงต่อไปนี้: (ช่วงเวลา 300 วินาทีเช่น 5 นาที 10 นาทีจะเป็น 600 ช่วง ฯลฯ ... )

0       300  
300     600  
600     900  
900     1200  
1200    1500  
1500    1800  
1800    2100  
2100    2400  
2400    2700  
2700    3000  
3000    3300  
3300    3600  
3600    3900  
3900    4200  
4200    4500  
4500    4800  
4800    5100  
5100    5400  
5400    5700  
5700    6000  
6000    6300  
6300    6600  
6600    6900  
6900    7200  
7200    7500  
7500    7800  
7800    8100  
8100    8400  
8400    8700  
8700    9000  
9000    9300  
9300    9600  
9600    9900  
9900    10200  
10200   10500  
10500   10800  
10800   11100  
11100   11400  
11400   11700  
11700   12000  
12000   12300  
12300   12600  
12600   12900  
12900   13200  
13200   13500  
13500   13800  
13800   14100  
14100   14400  
14400   14700  
14700   15000  

เพียงตรวจสอบให้แน่ใจว่าจำนวนของช่วงเวลานั้นมากกว่าความยาวทั้งหมดของไฟล์เสียงของคุณฉันสร้างไฟล์นี้ขึ้นมาซึ่งใช้เวลานานกว่าสามชั่วโมงนานพอสำหรับความต้องการของฉันผนวกเข้ากับความต้องการของคุณ

นำเข้าไฟล์เสียงไปที่ความกล้าและทำการปรับสมดุลและแก้ไขสิ่งที่คุณต้องการจากนั้นคลิกที่ไฟล์> ป้ายกำกับ> นำเข้าป้ายกำกับ

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

เปลี่ยนประเภทไฟล์ที่คุณต้องการส่งออกและปรับการตั้งค่าจากนั้นเลือกโฟลเดอร์ปลายทาง

ฉันเปลี่ยนรูปแบบการกำหนดหมายเลขเป็น Numbering After Filename Prefix และพิมพ์ชื่อไฟล์ที่ฉันต้องการในกล่องและโปรแกรมจะเพิ่มหมายเลขกดส่งออกและวิโอล่า!


-1

ดาวน์โหลด Audacity - เป็นเครื่องมือเสียงฟรีที่สามารถทำสิ่งที่คุณต้องการได้อย่างอิสระฟรีและใช้งานง่าย http://audacity.sourceforge.net/


2
มีวิธีทำให้ Audacity ทำสิ่งนี้โดยอัตโนมัติหรือไม่? ฉันไม่ต้องการสับไฟล์หลาย ๆ ไฟล์เป็น 16 ชิ้นด้วยตนเองโดยเลือกเมาส์ 5 นาทีโดยตัดมันไปที่เมนูบันทึกไฟล์และอื่น ๆ
slhck

ฉันมีความกล้าอยู่แล้วดังนั้นหากมีวิธีอัตโนมัติโปรดแจ้งให้เราทราบ!
Andrew Cheong
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.