Próbowałem następujące polecenie, aby wyodrębnić audio z wideo:
ffmpeg -i Sample.avi -vn -ar 44100 -ac 2 -ab 192k -f mp3 Sample.mp3
ale otrzymuję następujące dane wyjściowe
libavutil 50.15. 1 / 50.15. 1
libavcodec 52.72. 2 / 52.72. 2
libavformat 52.64. 2 / 52.64. 2
libavdevice 52. 2. 0 / 52. 2. 0
libavfilter 1.19. 0 / 1.19. 0
libswscale 0.11. 0 / 0.11. 0
libpostproc 51. 2. 0 / 51. 2. 0
SamplE.avi: Invalid data found when processing input
Czy ktoś może pomóc?
Aby zakodować wysokiej jakości plik MP3 z AVI najlepiej użyć -q: a dla zmiennej szybkości transmisji:
Jeśli chcesz wyodrębnić część dźwięku z wideo, użyj opcji -ss , aby określić początkowy znacznik czasu, a opcji -t , aby określić czas kodowania, np. Od 3 minut i 5 sekund przez 45 sekund:
Znaczniki czasu muszą być w formacie GG: MM: SS.xxx lub w sekundach.
Jeśli nie określisz opcji -t , przejdzie ona do końca.
Przykład roboczy:
źródło
-q:a
wartościach: trac.ffmpeg.org/wiki/Encode/MP3 Zero to ustawienie VBR najwyższej jakości, które zwykle skutkuje średnimi przepływnościami w górnej części rozsądnego zakresu CBR (gdzie 320 kbit / s to maksimum, prawdopodobnie nieco powyżej punktu, w którym kompresja bezstratna staje się bardziej odpowiednia).-map a
zrobić?-vn
nie działa.Wiersz poleceń jest poprawny i działa na poprawnym pliku wideo. Upewnij się, że zainstalowałeś poprawną bibliotekę do pracy z mp3, zainstaluj lame o probe z innym kodekiem audio.
Zazwyczaj
lub
dałby wystarczające informacje, abyś wiedział więcej.
źródło
ffmpeg -i sample.avi
poda informacje o formacie audio / wideo dla pliku. Upewnij się, że masz skonfigurowane odpowiednie biblioteki do analizowania strumieni wejściowych. Upewnij się również, że plik nie jest uszkodzony.źródło
Aby zakodować mp3 audio ffmpeg.org pokazuje następujący przykład:
Wyodrębniłem dźwięk z wideo, zastępując
input.wav
go nazwą pliku wideo.2
Środki 190 kb / s. Pozostałe poziomy jakości można zobaczyć pod moim linkiem powyżej.źródło
Oto, czego właśnie użyłem:
Objaśnienie opcji:
-map 0:3
oznacza, że chcę trzeciego strumienia z pliku wideo. Umieść swoje N tam - pliki wideo często zawierają wiele strumieni audio; możesz go pominąć lub użyć-map 0:a
domyślnego strumienia audio. Biegaćffprobe my.mkv
aby zobaczyć, jakie strumienie ma plik wideo.źródło
Tylko zgadnij:
Powinien być
Wygląda na to, że może to stanowić problem, ale może ffmpeg jest wystarczająco inteligentny, aby to naprawić.
źródło
Jeśli dźwięk zawinięty w avi nie jest na początku w formacie mp3, może być konieczne podanie go
-acodec mp3
jako dodatkowego parametru. Lub czymkolwiek jest twój kodek mp3 (w systemach Linux to prawdopodobnie-acodec libmp3lame
). Możesz również uzyskać ten sam efekt,-f mp3
niezależny od platformy, zamiast tego określając „wymuszenie” formatu na mp3, chociaż nie wszystkie wersje ffmpeg nadal obsługują ten przełącznik. Twój przebieg może się różnić.źródło
Aby wyodrębnić bez konwersji, używam pozycji menu kontekstowego - jako akcji niestandardowej menedżera plików w systemie Linux - do uruchomienia następujących czynności (po sprawdzeniu, jaki typ audio zawiera wideo; przykład dla wideo zawierającego
ogg
audio):który jest oparty na poleceniu ffmpeg
ffmpeg -i INPUT -map 0:a -c:a copy OUTPUT
.Użyłem tego
-map 0:1
bez problemów, ale, jak powiedział w komentarzu @LordNeckbeard, „ Nie gwarantuje się , że strumień0:1
zawsze będzie audio. Używanie-map 0:a
zamiast-map 0:1
pozwoli uniknąć dwuznaczności”.źródło
0:1
nie gwarantuje, że zawsze będzie audio. Używanie-map 0:a
zamiast-map 0:1
pozwoli uniknąć dwuznaczności.mediainfo
ustalałem ścieżkę audio i wybrałem ją w następujący sposób:-map 0:a:1
gdzie a: 1 to indeks drugiej ścieżki dźwiękowej, dzięki!-c:a copy
znacznie szybciej!Dla osób szukających prostszego sposobu na wydobycie dźwięku z pliku wideo przy zachowaniu parametrów oryginalnego pliku wideo, możesz użyć:
Na przykład uruchamianie:
wyodrębnia
mp3
plik audio zmov
pliku wideo.źródło
Użyj
-b:a
zamiast-ab
jako-ab
jest już nieaktualne, upewnij się również, że ścieżka do pliku wejściowego jest poprawna.Aby wyodrębnić audio z wideo użyłem poniżej polecenia i działa dobrze.
Tutaj,
-y
- Zastąp pliki wyjściowe bez pytania.-i
- FFmpeg odczytuje z dowolnej liczby „plików” wejściowych określonych przez-i
opcję-vn
- Wyłącz nagrywanie wideo-ar
- ustawia częstotliwość próbkowania dla strumieni audio, jeśli są zakodowane-ac
- Ustaw liczbę kanałów audio.-b:a
- Ustaw bitrate audio-f
- formatSprawdź to dla mojego kompletnego przykładowego projektu Android FFmpeg na GitHub.
źródło