การแปลง mp4 เป็น mp3


81

ฉันมีวิดีโอฉันต้องการแปลงเป็น mp3 (จากบรรทัดคำสั่ง - ไม่ใช่ GUI): video.mp4

ฉันเหนื่อย:

ffmpeg -i -b 192 video.mp4 video.mp3

ไม่ประสบความสำเร็จ ฉันได้รับข้อผิดพลาดต่อไปนี้:

WARNING: library configuration mismatch
Seems stream 0 codec frame rate differs from container frame rate: 59.83 (29917/500) -> 59.75 (239/4)
WARNING: The bitrate parameter is set too low. It takes bits/s as argument, not kbits/s 
Encoder (codec id 86017) not found for output stream #0.0

ดังนั้นฉันจึงลองใช้ง่อย:

lame -h -b 192 video.mp4 video.mp3

ฉันเข้าใจ:

Warning: unsupported audio format

ฉันพลาดอะไรไปรึเปล่า?


1
เปลี่ยน -b เป็น -ab
duffydack

คำตอบ:


115

สำหรับ FFmpeg ด้วยการเข้ารหัสบิตเรตอย่างต่อเนื่อง (CBR):

ffmpeg -i video.mp4 -vn \
       -acodec libmp3lame -ac 2 -ab 160k -ar 48000 \
        audio.mp3

หรือถ้าคุณต้องการใช้การเข้ารหัสบิตเรตตัวแปร (VBR):

ffmpeg -i video.mp4 -vn \
       -acodec libmp3lame -ac 2 -qscale:a 4 -ar 48000 \
        audio.mp3

ตัวอย่าง VBR มีบิตเรตเป้าหมายที่ 165 Kbit / s ด้วยช่วงบิตเรตที่ 140 ... 185


7
สมมติว่าติดตั้งง่อยแล้ว
Darth Egregious

ฮ่าขอบคุณนั่นคือสิ่งที่ฉันกำลังมองหา
aki

2
ขั้นตอนพิเศษสำหรับขั้นตอนนี้คือsudo apt-get install libavcodec-extra-53
Jason Scheirer

2
หรือตั้งแต่นี้คือ Ubuntu, ubuntu-restrict-extrasซึ่งรวมถึง libavcodec-extra-53 เหนือสิ่งอื่นใด คุณอาจติดตั้งสิ่งนี้แล้วในขณะที่ซีดีการติดตั้งแจ้งให้ทำเช่นนั้น
thomasrutter

1
การแก้ไขของฉันเพิ่มในตัวอย่าง VBR และติดป้ายชื่อบิตเรตคงที่เป็น CBR ...
andrew.46

12

ฉันมีเปลือกสคริปต์ที่ใช้mplayer(ดังนั้นจึงสามารถแปลงอะไรmplayerสามารถเล่น) lameในการแยกเสียงแล้วเข้ารหัสโดยใช้ นี่คือรหัส:

#! /bin/bash
# any2mp3.sh
# Converts to mp3 anything mplayer can play
# Needs mplayer amd lame installed

[ $1 ] || { echo "Usage: $0 file1.wma file2.wma"; exit 1; }

for i in "$@"
do
    [ -f "$i" ] || { echo "File $i not found!"; exit 1; }
done

[ -f audiodump.wav ] && {
    echo "file audiodump.wav already exists"
    exit 1
}

for i in "$@"
do
    ext=`echo $i | sed 's/[^.]*\.\([a-zA-Z0-9]\+\)/\1/g'`
    j=`basename "$i" ".$ext"`
    j="$j.mp3"
    echo
    echo -n "Extracting audiodump.wav from $i... "
    mplayer -vo null -vc null -af resample=44100 -ao pcm:waveheader:fast \
    "$i" >/dev/null 2>/dev/null || {
        echo "Problem extracting file $i"
        exit 1
    }
    echo "done!"
    echo -n "Encoding to mp3... "
    lame -m s audiodump.wav -o "$j" >/dev/null 2>/dev/null
    echo "done!"
    echo "File written: $j"
done
# delete temporary dump file
rm -f audiodump.wav

apt-get install mplayer lameแรกที่คุณต้อง หลังจากนั้นให้ใส่รหัสในไฟล์ชื่อ '' any2mp3.sh '' ให้สิทธิ์ในการดำเนินการและใส่ไว้ใน $ PATH ของคุณและคุณจะสามารถทำได้:

$ any2mp3.sh file.mp4 another-file.wma yet-another.file.ogg

มันจะแปลงแต่ละไฟล์ที่ส่งผ่านไปยัง mp3 ด้วยชื่อเดียวกัน

มันค่อนข้างหยาบ แต่ก็ทำงานได้


ฉันทำทุกอย่างแล้วและฉันได้รับ: -rw-r--r-- 1 aki aki 7104 2011-12-02 10:41 video.mp3ซึ่งไม่ได้เล่น
aki

มันแปลก ... ดูเหมือนว่าคนง่อยจะไม่สามารถแปลง wav ได้ ลองลบ>/dev/null 2>/dev/nullรหัสออกเพื่อดูข้อความแสดงข้อผิดพลาด
elias

ไม่มีโชคนี่คือผลลัพธ์: pastebin.com/ALrTqCmkของการแปลงทั้งสอง
aki

และ audiodump.wav เล่นหรือไม่? หากไม่mplayerสามารถเล่นไฟล์ video.mp4 ไม่ได้และคุณโชคไม่ดี บางทีไฟล์ที่คุณพยายามแปลงเสียหายคุณสามารถทดสอบกระบวนการด้วยไฟล์อื่นได้หรือไม่?
elias

ไม่ wav ไม่เล่นหรือ mp4 จาก mplayer
aki

11

soundconverter ติดตั้ง soundconverter

ติดตั้งผ่านศูนย์ซอฟต์แวร์

เป็นเครื่องมือแปลงไฟล์เสียงชั้นนำสำหรับ GNOME Desktop มันอ่านอะไรก็ได้ GStreamer สามารถอ่านได้ (Ogg Vorbis, AAC, MP3, FLAC, WAV, AVI, MPEG, MOV, M4A, AC3, DTS, ALAC, MPC, ย่อ, APE, SID, MOD, XM, S3M, ฯลฯ ... ) และเขียนไปยังไฟล์ WAV, FLAC, MP3, AAC และ Ogg Vorbis หรือใช้โปรไฟล์เสียงของ GNOME

SoundConverter มุ่งใช้งานง่ายและรวดเร็วมาก ด้วยการออกแบบแบบมัลติเธรดมันจะใช้คอร์มากเท่าที่จะเป็นไปได้เพื่อเพิ่มความเร็วในการแปลง นอกจากนี้ยังสามารถแยกเสียงจากวิดีโอ

วิธีแปลง MP4 เป็น MP3 ด้วย VLC

  • เปิด VLC Media Player คลิก "สื่อ"> "แปลง" เพื่อเข้าสู่หน้าต่าง "เปิดสื่อ" คลิกปุ่ม "เพิ่ม" ที่ด้านขวาของหน้าจอเพื่อเข้าสู่ Windows Explorer ค้นหา MP4 บนฮาร์ดไดรฟ์ที่คุณต้องการแปลง คลิกปุ่ม "แปลง" ที่ด้านล่างของหน้าจอ

  • เลือกชื่อของไฟล์เป้าหมาย

  • คลิกแท็บ "Audio Codec" และเลือก "MP3" จากช่องรายการ "Codec" กดปุ่ม "เริ่ม" เพื่อเริ่มการแปลง MP4 ของคุณเป็นเสียง MP3

  • คลิกเริ่ม


4
แต่ OP ขอวิธีการแก้ปัญหาบรรทัดคำสั่ง
นาธานออสมัน

7

ฉันใช้สคริปต์เล็ก ๆ นี้เพื่อแปลง m4a เป็น mp3

#!/bin/bash
for i in *.m4a; do
    avconv -i "$i" -vn -acodec libmp3lame -ac 2 -ab 160k -ar 48000 "`basename "$i" .m4a`.mp3"
done

ถ้ามันบอกว่าavconvถ้าไม่พบการติดตั้งffmpeg และแทนที่ด้วยffmpeg
sanoJ

5

ฉันคิดว่าปัญหาเกิดขึ้นกับไวยากรณ์ของคำสั่ง ffmpeg

ffmpeg -i source_filename -vn -ab 192k -acodec libmp3lame -ac 2 output_filename

ควรทำงาน.


ฉันได้รับ: คาดว่าจะได้ตัวเลข แต่พบ: liblamemp3
aki

2

ก่อนอื่นคุณต้องเข้าใจบางสิ่ง

MP3เป็นรูปแบบเสียง

MP4เป็นรูปแบบวิดีโอ

เพื่อให้ได้เสียงที่ออกมาจาก MP4 (และจะบันทึกเป็น MP3) ใช้soundconverter ติดตั้ง soundconverter


1
+1 ทำได้ดีมากสำหรับการชี้ให้เห็นความแตกต่างระหว่าง mp4 และ mp3
fossfreedom

2

ในการแปลงUpd_Sanity.mp4เป็นUpd_Sanity.mp3

$ sudo apt-get install ffmpeg && sudo apt-get install libavcodec-extra-53

$ ffmpeg -i Upd_Sanity.mp4 -vn -acodec libmp3lame -ac 2 -ab 160k -ar 48000 Upd_Sanity.mp3

หรือ (ตามที่ffmpegถูกปฏิเสธ)

$ avconv -i Upd_Sanity.mp4 -vn -acodec libmp3lame -ac 2 -ab 160k -ar 48000 Upd_Sanity.mp3

ลักษณะ

   -i        input file name
   -vn       disable video recording
   -acodec   force audio codec to libmp3lame
   -ac       set the number of audio channels
   -ar       set the audio sampling frequency

หากคุณจำเป็นต้องใช้บ่อย

ขั้นตอนที่ 1: สร้างฟังก์ชั่นทุบตีที่ดำเนินการแปลง

## utilities.sh
convertMP4toMP3(){
echo -n "Enter source mp4 file : "
read sourceFile

echo -n "Enter destination mp3 file : "
read destFile

avconv -i $sourceFile -vn -acodec libmp3lame -ac 2 -ab 160k -ar 48000 $destFile
}

ขั้นตอนที่ 2: แหล่งไฟล์ bash

 $ source utilities.sh

ขั้นตอนที่ 3: เริ่มการแปลงการโทรข้างต้นฟังก์ชั่น convertMP4toMP3

 $ convertMP4toMP3
 Enter source mp4 file : Upd_Sanity.mp4
 Enter destination mp3 file : UPd_sanity.mp3

อ้างอิง

utilities.sh


1

เป็นไปได้ที่จะใช้ Lame โดยตรงหากคุณใช้ FFmpeg และไพพ์เอาต์พุตเป็น lame (ผ่าน stdout และ stdin) ตัวอย่าง:

ffmpeg -i video.mp4 -vn -f wav - | \
       lame -V 3 - audio.mp3

สิ่งนี้ช่วยให้คุณใช้ตัวเลือกบรรทัดคำสั่งจำนวนมากของ lame หากคุณต้องการสำรวจ ...


0

คุณสามารถลองแปลงมันโดย vlc หรือตัวแปลงเสียงไปที่http://soundconverter.org/ตัวแปลงเสียงหรือค้นหาในศูนย์ซอฟต์แวร์ของคุณหรือใช้ vlc สำหรับการแปลงเปิด vlc สื่อแปลง / บันทึกเลือกไฟล์ของคุณเลือกรูปแบบผลลัพธ์เลือกชื่อและปลายทางและ เริ่มต้นการนึ่งนั่นคือทั้งหมด



0

แม้ว่าจะเป็น GUI แต่คุณสามารถใช้ความกล้าในการควบคุมค่าคงที่หรือตัวแปรรวมถึงคุณภาพผลผลิตเมื่อทำการแปลง MP4 เป็น MP3

เปิดความกล้าเปิดไฟล์ MP4 เป้าหมายคลิกไฟล์ส่งออกแล้วเลือกประเภทผลลัพธ์ (ค่าเริ่มต้นคือ MP3) แล้วคลิกบันทึก จะเปิดช่องสัญญาณเสียงของ MP4 ส่งออกเสียง MP3 ไปยังทุกที่ (และอะไรก็ตามที่คุณบันทึกไว้) และคุณไม่อยู่ (แปลง MP4 400 เมกะไบต์เป็น MP3 บนชิป 3Ghz AMD ใช้เวลาประมาณ 10 นาที ด้วยอัตราตัวอย่าง 160kb / วินาทีในไฟล์เสียงและไฟล์เสียงจะมีขนาดใหญ่เท่ากับ MP4 ประมาณครึ่งหนึ่ง

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