FFMPEG wyodrębnia audio z wideo z irytującym dźwiękiem na końcu

0

Używam FFMPEG do wyodrębnienia dźwięku z pliku wideo * .avi
Jest to format pliku avi wydrukowany za pomocą ffprobe

ffprobe 0.avi
ffprobe wersja 2.8.4 Copyright (c) 2007-2015 programiści FFmpeg zbudowani w
konfiguracji gcc 4.8 (Ubuntu 4.8.4-2ubuntu1 ~ 14.04) : --disable-yasm
libavutil 54. 31.100 / 54. 31.100
libavcodec 56 . 60.100 / 56. 60.100 libavformat
56. 40.101 / 56. 40.101
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 40.101 / 5. 40.101
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 2.101 / 1. 2.101
Niepoprawny kod golomb UE <- Ta linia jest czerwona w konsoli, może to być błąd, ale wideo jest odtwarzane dobrze
Ostatnia wiadomość powtórzona 2 razy
Wejście nr 0, avi, z '0.avi':
Czas trwania: 00: 02: 54,33, start: 0,000000, przepływność: 1880 kb / s
Strumień # 0: 0: Wideo: h264 (High) (H264 / 0x34363248), yuv420p, 1280x720, 1740 kb / s, 15 fps, 15 tbr , 15 tbn, 30 tbc
Strumień # 0: 1: Audio: pcm_s16le ([1] [0] [0] [0] / 0x0001), 8000 Hz, 1 kanały, s16, 128 kb / s

Użyłem polecenia ffmpeg:

ffmpeg -i 0.avi -vn -c:a copy sound0.wav

Konwertuj postęp wygląda dobrze

Wyjście # 0, wav, do 'sound0.wav':
Metadane:
ISFT: Lavf56.40.101
Strumień # 0: 0: Audio: pcm_s16le ([1] [0] [0] [0] / 0x0001), 8000 Hz, mono , 128 kb / s
Mapowanie strumienia:
Strumień # 0: 1 -> # 0: 0 (kopiowanie)
Naciśnij [q], aby zatrzymać, [?], Aby uzyskać
rozmiar pomocy = 2726kB czas = 00: 02: 54,49 bitrate = 128,0 kbit / s
wideo: 0kB audio: 2726kB napisy: 0kB inne strumienie: 0kB globalne nagłówki:
0kB narzuty multipleksowania: 0,002794%

Informacje o dźwięku wyjściowym:

Wejście # 0, wav, z 'sound0.wav':
Metadane:
koder: Lavf56.40.101
Czas trwania: 00: 02: 54,49, przepływność: 128 kb / s
Strumień # 0: 0: Audio: pcm_s16le ([1] [0] [0] [0] / 0x0001), 8000 Hz, 1
kanał, s16, 128 kb / s

Wszystko wygląda dobrze, ale irytujące dźwięki (tylko sygnał dźwiękowy lub coś takiego) kończą się na pliku wyjściowym audio, gdy wejście wideo jest w porządku.

http://vocaroo.com/i/s00Ia5bO0JID

Nie mam podstawowej wiedzy na temat multimediów lub ffmpeg, więc nie mam pojęcia, co się stało.

Każda pomoc będzie mile widziana.

Loi Dang
źródło

Odpowiedzi:

0

Wydaje się, że kopia strumienia kopiuje cały strumień, w tym część, która wykracza poza czas trwania wideo.

Próbować

ffmpeg -i 0.avi -vn -c:a copy -t 02:54.33 sound0.wav
Gyan
źródło
Dzięki Mulvya argument -t tymczasowo działa dla mnie, ale wygląda na to, że najpierw muszę określić czas trwania wideo (ze skryptu bash). Czy jest jakiś inny sposób?
Loi Dang
0

Może dzieje się tak z powodu problemów z kodekiem. Opcja -c:a copykopiuje kodek audio.

używać ffmpeg -i 0.avi -c:a libmp3lame sound0.mp3do kodowania dźwięku do formatu mp3.

Behroozfar
źródło