Konwersja mp4 na mp3

81

Mam wideo, które muszę przekonwertować na mp3 (z wiersza poleceń - nie GUI): video.mp4

Próbowałem:

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

bez powodzenia. Otrzymuję następujący błąd:

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

więc spróbowałem lame:

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

Dostaję:

Warning: unsupported audio format

Czy coś brakuje?

aki
źródło
1
zmień -b na -ab
duffydack

Odpowiedzi:

115

W przypadku FFmpeg ze stałym kodowaniem bitrate (CBR):

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

lub jeśli chcesz użyć Variable Bitrate Encoding (VBR):

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

Przykład VBR ma docelową przepływność 165 Kbit / s z zakresem przepływności 140 ... 185.

jahid65
źródło
7
Zakładając, że lame jest już zainstalowany.
Darth Egregious,
ha dzięki, właśnie tego szukam
aki
2
Jedynym dodatkowym krokiem jestsudo apt-get install libavcodec-extra-53
Jason Scheirer,
2
Lub ponieważ jest to Ubuntu, dodatki ubuntu-ograniczone , które obejmują między innymi libavcodec-extra-53. Być może zainstalowałeś go już, gdy pojawi się monit z instalacyjnego dysku CD.
thomasrutter
1
Moja edycja dodana w przykładzie VBR i oznaczona stała wartość bitrate jako CBR ...
andrew.46
12

Mam skrypt powłoki, który używa mplayer(aby konwertować wszystko, co mplayermożna odtwarzać) w celu wyodrębnienia dźwięku, a następnie zakodowania go za pomocą lame. Oto kod:

#! /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

Najpierw musisz apt-get install mplayer lame. Następnie umieść kod w pliku o nazwie „any2mp3.sh”, zezwól na wykonanie i umieść go w zmiennej $ PATH, a będziesz mógł:

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

Konwertuje każdy plik przesłany na plik mp3 o tej samej nazwie.

To trochę szorstkie, ale działa.

elias
źródło
Zrobiłem wszystko i dostaję: -rw-r--r-- 1 aki aki 7104 2011-12-02 10:41 video.mp3co nie gra
aki
to dziwne ... wydaje się, że lame nie mógł przekonwertować WAV. spróbuj usunąć >/dev/null 2>/dev/nullkod, aby zobaczyć komunikat o błędzie.
elias
nie ma szczęścia, oto wynik: pastebin.com/ALrTqCmk obu konwersji
aki
I czy gra audiodump.wav? Jeśli nie, nie mplayermożna odtworzyć pliku video.mp4, a wtedy naprawdę nie masz szczęścia. Może plik, który próbujesz przekonwertować, jest uszkodzony, czy możesz przetestować proces z innym plikiem?
elias
nie, wav nie gra, ani mp4 z mplayer
aki
11

konwerter dźwięku Zainstaluj konwerter dźwięku

Zainstaluj za pośrednictwem centrum oprogramowania

jest wiodącym konwerterem plików audio dla GNOME Desktop. Czyta wszystko, co potrafi GStreamer (Ogg Vorbis, AAC, MP3, FLAC, WAV, AVI, MPEG, MOV, M4A, AC3, DTS, ALAC, MPC, Shorten, APE, SID, MOD, XM, S3M itp.) ) i zapisuje pliki WAV, FLAC, MP3, AAC i Ogg Vorbis lub użyj profilu audio GNOME.

SoundConverter ma być prosty w obsłudze i bardzo szybki. Dzięki wielowątkowemu projektowi wykorzysta jak najwięcej rdzeni, aby przyspieszyć konwersję. Może także wyodrębnić audio z filmów.

Jak przekonwertować MP4 na MP3 za pomocą VLC

  • Otwórz VLC Media Player. Kliknij „Media”> „Konwertuj”, aby przejść do okna „Otwórz media”. Kliknij przycisk „Dodaj” po prawej stronie ekranu, aby przejść do Eksploratora Windows. Znajdź MP4 na dysku twardym, który chcesz przekonwertować. Kliknij przycisk „Konwertuj” u dołu ekranu.

  • Wybierz nazwę pliku docelowego.

  • Kliknij kartę „Audio Codec” i wybierz „MP3” z rozwijanego menu „Codec”. Naciśnij przycisk „Start”, aby rozpocząć konwersję MP4 na MP3.

  • Kliknij Start

hhlp
źródło
4
Ale OP poprosił o rozwiązanie wiersza polecenia.
Nathan Osman,
7

Używam tego małego skryptu do konwersji m4a na 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
szpieg
źródło
Jeśli to powie, avconvjeśli nie zostanie znalezione, zainstaluj ffmpeg i zamień naffmpeg
sanoJ
5

Myślę, że problem dotyczy twojej składni polecenia ffmpeg.

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

powinno działać.

kaan
źródło
Dostaję: oczekiwano numeru ac, ale znaleziono: liblamemp3
aki
2

Najpierw musisz zrozumieć kilka rzeczy.

MP3to format audio .

MP4to format wideo .

Aby uzyskać dźwięk z MP4 (i zapisać go jako MP3), użyj konwertera dźwięku Zainstaluj konwerter dźwięku .

jrg
źródło
1
+1 dobrze zrobione za wskazanie różnicy między mp4 a mp3.
fossfreedom
2

Aby przekonwertować Upd_Sanity.mp4 na 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

LUB (jak ffmpegjest przestarzałe)

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

Opis

   -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

Jeśli musisz go często używać,

KROK 1: Utwórz funkcję bash, która wykonuje konwersję

## 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
}

KROK 2: źródło tego pliku bash

 $ source utilities.sh

KROK 3: rozpocznij konwersję wywołującą powyższą funkcję convertMP4toMP3

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

Bibliografia

utilities.sh

prayagupd
źródło
1

Możliwe jest użycie Lame bezpośrednio, jeśli użyjesz FFmpeg i potokujesz wyjście do lame (przez stdout i stdin). Przykład:

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

Pozwala to na użycie znacznych opcji wiersza polecenia lame, jeśli chcesz je poznać ...

andrew.46
źródło
0

możesz spróbować przekonwertować go za pomocą VLC lub konwertera dźwięku przejdź do http://soundconverter.org/ konwertera dźwięku lub znajdź w swoim centrum oprogramowania lub użyj VLC do konwersji Otwórz VLC Media konwertuj / zapisz wybierz plik wybierz format wyjściowy wybierz nazwę i miejsce docelowe oraz zacznij gotować na parze to wszystko

paru38
źródło
0

Chociaż jest to GUI, możesz użyć Audacity do kontrolowania stałej lub zmiennej, a także jakości wyjściowej podczas konwersji MP4 na MP3.

Otwórz Audacity, otwórz docelowy plik MP4, kliknij PLIK, EKSPORT, a następnie wybierz typ wyjścia (domyślnie MP3) i kliknij ZAPISZ. Otwiera kanały audio MP4, eksportuje dźwięk MP3 w dowolne miejsce (i cokolwiek go zapiszesz) i nie masz go (konwersja MP4 400 MB na MP3 na procesorze AMD 3Ghz trwa około 10 minut , z częstotliwością próbkowania 160 kb / s dźwięku, a plik audio będzie o około połowę większy niż MP4).

Skeetersaurus
źródło