ฉันจะแก้ไขระยะเวลา mp3 ที่ไม่ถูกต้องได้อย่างไร


22

ฉันมีเพลงจำนวนหนึ่งในคลังเพลงของฉันที่แสดงค่าระยะเวลาที่ไม่ถูกต้องและดังนั้นจึงสามารถเล่นได้เพียงบางส่วนใน Clementine ในแบนชีและผู้เล่นอื่นพวกเขาแสดงค่าระยะเวลาที่แตกต่างกันและบางครั้งเล่นเพลงเต็ม

มีวิธีในการแก้ไขปัญหานี้โดยไม่ต้อง "เข้ารหัสซ้ำ" เพลงหรือไม่

คำตอบ:


24

MP3 Diagsสามารถแก้ไขระยะเวลาที่ไม่ถูกต้อง (และข้อผิดพลาดอื่น ๆ ) มันเป็นโอเพนซอร์สและในที่เก็บ มันเป็นเครื่องมือ GUI

การติดตั้ง

sudo apt-get install mp3diags mp3diags-doc

ตัวเลือกอื่นคือMP3valซึ่งสามารถใช้ได้ทั้งผ่าน commandline หรือผ่าน GUI:

การติดตั้ง

sudo apt-get install mp3val

ตัวอย่างการใช้งาน

mp3val damaged.mp3 -f -t

-f: แก้ไขข้อผิดพลาด -t: เก็บเวลาประทับดั้งเดิม


สิ่งนี้ใช้ได้สำหรับฉัน ฉันใช้catเพื่อรวมหนังสือเสียงในส่วนไฟล์เดียว ( cat 1.mp3 2.mp3 > out.mp3) และใช้งานได้ดีในการเล่น แต่ผู้เล่นเกือบทุกคนจะได้รับความแปลกประหลาดกับการประทับเวลาและยังmediainfoแสดงระยะเวลาจากไฟล์แรกมากกว่าการรวมกัน
blockloop

catน้อยกว่าอุดมคติสำหรับงานเช่นการรวม mp3 วิธีที่ดีกว่า: http://superuser.com/questions/314239/how-to-join-merge-many-mp3-files
phoibos

ทำไมคุณคิดอย่างนั้น ไฟล์ MP3 นั้นไม่ได้เป็นอะไรมากไปกว่าสตรีมดิบและเกือบจะเป็นตัวเลือกที่สมบูรณ์แบบcatนอกเหนือจากผลข้างเคียงเล็กน้อยที่แก้ไขได้ด้วยการประเมินข้อมูลส่วนหัวของ Xing อย่างง่าย แม้จะไม่มี mp3val ก็ตามไฟล์ยังคงเล่นได้ในทุกเครื่องเล่นที่ฉันส่งให้ catมีประสิทธิภาพสูงมากและเร็วกว่าการเข้ารหัสด้วย ffmpeg อีกครั้ง แม้จะมีคำสั่ง mp3val เพิ่ม
blockloop

ffmpegด้วยconcatและ-acodec copyไม่ได้เข้ารหัสใหม่ - มันก็สำเนาลำธาร (เพื่อให้มันเร็ว) แต่สร้างไฟล์ที่เหมาะสมในสถานที่แรก (โดยส่วนหัวและแท็กไร้ประโยชน์ข้อมูลที่ปรากฏหลายครั้งในแฟ้มผล)
phoibos

10

หากคุณไม่ต้องการติดตั้งอะไรใหม่ลองffmpeg :

ffmpeg -i file_orig.mp3 -acodec copy file_fixed.mp3

โซลูชั่นที่สมบูรณ์แบบสามารถใช้งานได้หากไฟล์ mp3 ที่ผิดถูกสร้างขึ้นโดย ffmpeg!
Pierpaolo Cira

มันใช้งานได้จริงสำหรับฉันเมื่อไม่ได้mp3valและmp3checkวิธีแก้ไขปัญหา (เพื่อให้แน่ใจว่ามันไม่ได้เข้ารหัสใหม่ใช่มั้ย)
Noldorin

ด้วย -acodec copy มันไม่ได้ทำการ reencode หากคุณต้องการตรวจสอบลองกับและไม่มีมันและตรวจสอบว่ามันไปอย่างรวดเร็ว
Alcaro

1

นอกเหนือจากส่วนหัว VBR ที่ไม่ตรงกับเสียงจริง (ซึ่งคุณจะใช้mp3valในการแก้ไขดังที่กล่าวไว้ในคำตอบอื่น ๆ ) อีกสาเหตุที่อาจเกิดขึ้นนี้คือไฟล์ MP3 ที่มีแท็ก ID3 ที่มีค่าไม่ถูกต้องสำหรับTLENแท็ก คุณสามารถแก้ไขได้โดยใช้mid3v2เครื่องมือจากmutagenแพ็คเกจเพื่อลบแท็ก (เห็นได้ชัดว่าเป็นตัวเลือก):

$ mid3v2 --delete-frames=TLEN filename.mp3

เครื่องเล่นเพลง Quodlibet ยังมีปลั๊กอิน "แก้ไข MP3 ระยะเวลา" ที่คุณสามารถใช้ทำได้

(นำมาจากคำถามที่พบบ่อยของ Quodlibet: http://quodlibet.readthedocs.org/en/latest/guide/faq.html )


1

mp3check ทำงานได้สมบูรณ์แบบสำหรับฉันด้วย wildcard

sudo apt-get install mp3check

mp3check {filename or wildcard} --cut-junk-start --cut-junk-end --fix-headers

ช่วยเมื่อ Windows Media Player แสดงระยะเวลาไฟล์ mp3 ผิด
Mantas D

คำเตือนหากคุณมีแท็ก id3v2, หน้าปก ฯลฯ ต้องตระหนักถึงปัญหาเหล่านี้อย่างมาก (ฉันเรียนรู้วิธีการที่ยาก) bugs.launchpad.net/ubuntu/+source/mp3check/+bug/592775 bugs.launchpad.net/ubuntu/+ แหล่งที่มา / mp3check / + ข้อผิดพลาด / 1,348,223
digitaltoast
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.