ครอบตัด MP3 เป็น 30 วินาทีแรก


103

คำถามเดิม

ฉันต้องการสร้างไฟล์ MP3 ใหม่ (ที่ถูกต้องสมบูรณ์) จากไฟล์ MP3 ที่มีอยู่เพื่อใช้เป็นตัวอย่าง - ลองก่อนตัดสินใจซื้อ ไฟล์ใหม่ควรมีnวินาทีแรกของแทร็กเท่านั้น

ตอนนี้ฉันรู้ว่าฉันสามารถ "สับสตรีม" ได้ที่nวินาที (คำนวณจากบิตเรตและขนาดส่วนหัว) เมื่อส่งไฟล์ แต่มันค่อนข้างสกปรกและเป็น PITA จริงในแทร็ก VBR ฉันต้องการสร้างไฟล์ MP3 ที่เหมาะสม

ใครมีความคิด?

คำตอบ

ทั้งสองอย่างmp3splitและffmpegเป็นทางออกที่ดีทั้งคู่ ผมเลือก ffmpeg ขณะที่มันมีการติดตั้งโดยทั่วไปบนเซิร์ฟเวอร์ลินุกซ์และยังเป็นอย่างที่มีอยู่สำหรับ Windows ต่อไปนี้เป็นพารามิเตอร์บรรทัดคำสั่งที่ดีสำหรับการสร้างตัวอย่างด้วย ffmpeg

  • -t <seconds> สับหลังจากจำนวนวินาทีที่ระบุ
  • -y บังคับให้เขียนทับไฟล์
  • -ab <bitrate>ตั้งค่าบิตเรตเช่น-ab 96k
  • -ar <rate Hz>กำหนดอัตราการสุ่มตัวอย่างเช่น-ar 22050สำหรับ 22.05kHz
  • -map_meta_data <outfile>:<infile> คัดลอกข้อมูลเมตาของแทร็กจาก infile ไปยัง outfile

แทนที่จะตั้งค่า -ab และ -ar คุณสามารถคัดลอกการตั้งค่าแทร็กดั้งเดิมตามที่ Tim Farley แนะนำด้วย:

  • -acodec copy

ฉันไม่ได้ใช้มันเพื่อจุดประสงค์เฉพาะนี้ แต่ฉันพนันได้เลยว่าffmpegทำได้
Grapefrukt

แค่คิด: คุณอาจต้องการข้ามจุดเริ่มต้นของเพลงต้นฉบับ บอกว่าคุณสามารถใช้ชิ้นส่วน 30 วินาทีเริ่มต้นที่สามของเพลง ในบางเพลง 30 วินาทีแรกไม่ได้บอกคุณมากที่สุดเท่าที่จะเป็นเพียง "การตั้งค่าที่เกิดเหตุส่วน" - เช่นPink Floyd 's Shine บ้าเพชร
Tomas Sedovic

โปรดทราบว่าฉันมีช่วงเวลาที่แย่มากกับ ffmpeg, mptsplit และ mp3cutter บน CentOS ทุกคนรายงานว่า "ส่วนหัวหายไป" ดังนั้นฉันต้องใช้ MP3 Class และคณิตศาสตร์บางอย่างเพื่อตัดตามขนาดไฟล์
การ์ดเนอร์

ฉันไม่ทราบว่า ffmpeg สามารถทำได้ ขอบคุณ.
Sridhar Sarnobat

คำตอบ:


142

ฉันแนะนำ ffmpeg ด้วย แต่บรรทัดคำสั่งที่แนะนำโดย John Boker มีผลข้างเคียงที่ไม่ได้ตั้งใจ: มันเข้ารหัสไฟล์อีกครั้งเป็นบิตเรตเริ่มต้น (ซึ่งก็คือ 64 kb / s ในเวอร์ชันที่ฉันมีอยู่ที่นี่เป็นอย่างน้อย) ซึ่งอาจทำให้ลูกค้าของคุณรู้สึกผิดเกี่ยวกับคุณภาพของไฟล์เสียงของคุณและยังใช้เวลาทำนานขึ้นด้วย

นี่คือบรรทัดคำสั่งที่จะแบ่งเป็น 30 วินาทีโดยไม่ต้องแปลงรหัส:

ffmpeg -t 30 -i inputfile.mp3 -acodec copy outputfile.mp3

สวิตช์ -acodec บอกให้ ffmpeg ใช้ตัวแปลงสัญญาณ "คัดลอก" พิเศษซึ่งไม่ได้แปลงรหัส มันรวดเร็วปานสายฟ้าแลบ

หมายเหตุ: คำสั่งได้รับการอัปเดตตามความคิดเห็นจาก Oben Sonne


21
ffmpegเวอร์ชันล่าสุด(อย่างน้อยตั้งแต่ 0.10.6) ตีความตัวเลือกต่างกันไปตามตำแหน่ง ตัวเลือกป้อนข้อมูลที่เกี่ยวข้องจะต้องปรากฏก่อน-i ...และตัวเลือกการส่งออก-releated -i ...ต้องปรากฏขึ้นหลังจากที่ ซึ่งหมายความว่าffmpeg -t 30 -i inputfile.mp3 -acodec copy outputfile.mp3จะตอนนี้จะเป็นคำตอบที่ถูกต้อง
Oben Sonne

ฉันสามารถแยกเสียง 30 วินาทีจากไฟล์อินพุต 15 วินาทีได้หรือไม่หมายความว่าถ้าตัวขูดไฟล์แล้ว 30 วินาทีให้แยก 30 วินาที แต่ถ้าไฟล์ 15 วินาทีให้ทำซ้ำและแตกไฟล์ 30 วินาที
Girish Patidar

6
หากคุณต้องการตั้งเวลาเริ่มต้น (ออฟเซ็ต) คุณสามารถ-ss hh:mm:ss[.xxx]ใช้ได้ ตัวอย่าง: ffmpeg -t 30 -ss 00:00:15.500 -i inputfile.mp3 -acodec copy outputfile.mp3จะหั่นไป30 วินาทีเริ่มต้นจาก00h 00M 15s 500ms
patryk.beza

1
ด้วยเหตุผลบางอย่างคำสั่งข้างต้นไม่ได้ผลสำหรับฉัน แต่ถ้าฉันเปลี่ยนเป็น: แสดงffmpeg -i inputfile.mp3 -t 30 -acodec copy outputfile.mp3ว่ามันทำงานได้อย่างสมบูรณ์
Krishnendu

สำหรับฉันต้องใช้อ็อพชัน -t and -s แยกกันใน 2 คำสั่ง แต่มันได้ผลขอบคุณ!
Yan King Yin

57

หากคุณต้องการลบ 30 วินาทีแรก (และเก็บส่วนที่เหลือไว้) ให้ใช้สิ่งนี้:

ffmpeg -ss 30 -i inputfile.mp3 -acodec copy outputfile.mp3


12

คำสั่งนี้ยังทำงานได้อย่างสมบูรณ์ ฉันครอบตัดไฟล์เพลงจาก 20 ถึง 40 วินาที

-y: บังคับให้ไฟล์เอาต์พุตเขียนทับ

ffmpeg -i test.mp3 -ss 00:00:20 -to 00:00:40 -c copy -y temp.mp3

1
สมบูรณ์แบบ! ขอบคุณสำหรับการแบ่งปันสิ่งนี้
HerrimanCoder

11

คุณสามารถใช้ mp3cut:

cutmp3 -i foo.mp3 -O 30s.mp3 -a 0:00.0 -b 0:30.0

มันอยู่ใน Ubuntu repo ดังนั้นเพียงแค่: sudo apt-get install cutmp3.


6

คุณอาจต้องการที่จะลองMp3Splt

ฉันเคยใช้มาก่อนในบริการ C # ที่ห่อหุ้มกระบวนการ win32 mp3splt.exe ฉันคิดว่าสิ่งที่คล้ายกันสามารถทำได้ในสถานการณ์ Linux / PHP ของคุณ


2
ใช้ MP3Split ที่ประสบความสำเร็จในการตัด mp3
Freshblood

0

ฉันได้รับข้อผิดพลาดขณะดำเนินการเดียวกัน

Invalid audio stream. Exactly one MP3 audio stream is required.
Could not write header for output file #0 (incorrect codec parameters     ?): Invalid argumentStream mapping:

แก้ไขสำหรับฉันคือ:

ffmpeg -ss 00:02:43.00 -t 00:00:10 -i input.mp3 -codec:a libmp3lame out.mp3

0

medipackเป็น app ffmpegบรรทัดคำสั่งที่ง่ายมากเป็นเสื้อคลุมมากกว่า

คุณสามารถตัดวิดีโอได้โดยใช้คำสั่งเหล่านี้:

medipack trim input.mp3 -s 00:00 -e 00:30 -o output.mp3
medipack trim input.mp3 -s 00:00 -t 00:30 -o output.mp3

คุณสามารถดูอ็อพชันของคำสั่งย่อย trim เป็น:

srb@srb-pc:$ medipack trim -h
usage: medipack trim [-h] [-s START] [-e END | -t TIME] [-o OUTPUT] [inp]

positional arguments:
  inp                   input video file ex: input.mp4

optional arguments:
  -h, --help            show this help message and exit
  -s START, --start START
                        start time for cuting in format hh:mm:ss or mm:ss
  -e END, --end END     end time for cuting in format hh:mm:ss or mm:ss
  -t TIME, --time TIME  clip duration in format hh:mm:ss or mm:ss
  -o OUTPUT, --output OUTPUT

คุณยังสามารถสำรวจตัวเลือกอื่น ๆ โดยใช้ medipack -h

srb@srb-pc:$ medipack --help
usage: medipack.py [-h] [-v] {trim,crop,resize,extract} ...

positional arguments:
  {trim,crop,resize,extract}

optional arguments:
  -h, --help            show this help message and exit
  -v, --version         Display version number

คุณสามารถไปที่https://github.com/srbcheema1/medipackและตัวอย่างการชำระเงินใน README


1
ข้อดีของกระดาษห่อนี้คืออะไร? เพราะมันดูไม่ง่ายไปกว่าffmpeg -i input -ss <start time> -to <end time> output
llogan

ฉันได้เพิ่มตัวเลือก-tที่สามารถใช้แทนได้-eซึ่งหมายความว่าฉันจะตัดต่อวิดีโอ 4 นาที 36 วินาทีถัดไปฉันไม่ต้องกังวลกับการเพิ่มเวลาเหล่านั้นด้วยตนเองนอกจากนี้ฉันได้ให้ความสะดวกที่คล้ายกันในขณะที่ครอบตัดวิดีโอดูตัวอย่าง ใน README คุณจะเข้าใจว่าเหตุใด CLI จึงง่ายกว่า ffmpeg ธรรมดา ฉันยอมรับว่ามันไม่ได้ทรงพลังขนาดนั้น แต่สำหรับคนปกติมันเป็นเครื่องมือที่มีประโยชน์
srbcheema1

2
ffmpegมี-toตัวเลือกซึ่งเป็นสิ่งที่คุณ-tอาจทำ
llogan

สิ่งที่เกี่ยวกับตัวเลือกอายุการปลูกพืชที่กล่าวถึงใน README ภายใต้ตัวเลือกย่อยของพืชนั้นมีให้ด้วยหรือไม่? ฉันเพิ่งสร้างเครื่องมือนั้นตามความต้องการโดยใครบางคนที่จ่ายเงินให้ฉันไม่กี่เหรียญเนื่องจากพวกเขาไม่ต้องการกังวลกับรายการตัวเลือก cli ขนาดใหญ่เพียงแค่พวกเขาต้องการเครื่องมือที่สามารถทำงานบางอย่างได้อย่างง่ายดายแม้ว่าจะมีตัวเลือกทั้งหมดใน ffmpeg ก็ตาม แต่ก็ยังคงเป็นเรื่องยากสำหรับ noob ที่จะค้นหาทั้งหมดในส่วนความช่วยเหลือบรรทัดคำสั่ง เครื่องมือนี้มีส่วนช่วยเหลือง่ายๆที่ง่ายสำหรับ noob ที่จะเข้าใจ
srbcheema1

ได้สิ-vf "crop=iw*0.1:ih*0.1:0:0"
llogan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.