Parece que a cópia do fluxo está copiando todo o fluxo, incluindo a parte que se estende além da duração do vídeo.
Tente
ffmpeg -i 0.avi -vn -c:a copy -t 02:54.33 sound0.wav
Estou usando o FFMPEG para extrair o áudio de um arquivo de vídeo * .avi
Este é o formato de arquivo avi impresso com ffprobe
ffprobe 0.avi
ffprobe version 2.8.4 Copyright (c) 2007-2015 the FFmpeg developers built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04)
configuration: --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
Invalid UE golomb code <-- This line is red in console, it might be an error, but the video plays well
Last message repeated 2 times
Input #0, avi, from '0.avi':
Duration: 00:02:54.33, start: 0.000000, bitrate: 1880 kb/s
Stream #0:0: Video: h264 (High) (H264 / 0x34363248), yuv420p, 1280x720, 1740 kb/s, 15 fps, 15 tbr, 15 tbn, 30 tbc
Stream #0:1: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 8000 Hz, 1 channels, s16, 128 kb/s
Eu usei o comando ffmpeg:
ffmpeg -i 0.avi -vn -c:a copy sound0.wav
Converter progresso parece ok
Output #0, wav, to 'sound0.wav':
Metadata:
ISFT : Lavf56.40.101
Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 8000 Hz, mono, 128 kb/s
Stream mapping:
Stream #0:1 -> #0:0 (copy)
Press [q] to stop, [?] for help
size= 2726kB time=00:02:54.49 bitrate= 128.0kbits/s
video:0kB audio:2726kB subtitle:0kB other streams:0kB global headers:0kB
muxing overhead: 0.002794%
Saída de informações sonoras:
Input #0, wav, from 'sound0.wav':
Metadata:
encoder : Lavf56.40.101
Duration: 00:02:54.49, bitrate: 128 kb/s
Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 8000 Hz, 1
channels, s16, 128 kb/s
Tudo parece ok, mas um som irritante (apenas um sinal sonoro ou algo parecido) chega ao fim no arquivo de saída de áudio enquanto o vídeo de entrada está bem.
Eu não tenho conhecimento básico trabalhando com multimídia ou ffmpeg, então não tenho idéia do que aconteceu.
Qualquer ajuda seria apreciada.
Parece que a cópia do fluxo está copiando todo o fluxo, incluindo a parte que se estende além da duração do vídeo.
Tente
ffmpeg -i 0.avi -vn -c:a copy -t 02:54.33 sound0.wav
Talvez isso aconteça devido a problemas com codecs. A opção -c:a copy
copia o codec de áudio.
use ffmpeg -i 0.avi -c:a libmp3lame sound0.mp3
para codificar seu áudio para o formato mp3.