Eu tentei o seguinte comando para extrair o áudio do vídeo:
ffmpeg -i Sample.avi -vn -ar 44100 -ac 2 -ab 192k -f mp3 Sample.mp3
mas eu recebo a seguinte saída
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
Alguém pode ajudar por favor?
Para codificar um MP3 de alta qualidade a partir de um AVI, use -q: a para taxa de bits variável:
Se você deseja extrair uma parte do áudio de um vídeo, use a opção -ss para especificar o registro de data e hora inicial e a opção -t para especificar a duração da codificação, por exemplo, de 3 minutos e 5 segundos em 45 segundos:
Os registros de data e hora precisam estar no formato HH: MM: SS.xxx ou em segundos.
Se você não especificar a opção -t, ela será finalizada.
Exemplo de trabalho:
fonte
-q:a
valores: trac.ffmpeg.org/wiki/Encode/MP3 Zero é a configuração de VBR de mais alta qualidade, que normalmente resulta em taxas de bits médias na parte superior do intervalo de CBR sã (onde 320 kbit / s é o máximo, provavelmente um pouco além do ponto em que a compactação sem perdas se torna mais apropriada).-map a
faz?-vn
não.A linha de comando está correta e funciona em um arquivo de vídeo válido. Eu garantiria que você instalou a biblioteca correta para funcionar com mp3, instale o lame o probe com outro codec de áudio.
Usualmente
ou
daria informações suficientes para que você saiba mais.
fonte
ffmpeg -i sample.avi
fornecerá as informações de formato de áudio / vídeo para o seu arquivo. Verifique se você possui as bibliotecas apropriadas configuradas para analisar os fluxos de entrada. Além disso, verifique se o arquivo não está corrompido.fonte
Para codificar o áudio mp3, ffmpeg.org mostra o seguinte exemplo:
Eu extraí o áudio de um vídeo apenas substituindo
input.wav
pelo nome do arquivo do vídeo. Os2
meios 190 kb / s. Você pode ver os outros níveis de qualidade no meu link acima.fonte
Aqui está o que eu acabei de usar:
Explicação das opções:
-map 0:3
significa que eu quero o terceiro stream do arquivo de vídeo. Coloque seu N lá - os arquivos de vídeo geralmente têm vários fluxos de áudio; você pode omiti-lo ou usá-map 0:a
-lo para obter o fluxo de áudio padrão. Executeffprobe my.mkv
para ver quais fluxos o arquivo de vídeo possui.fonte
Apenas um palpite:
deveria estar
Parece que isso pode ser um problema, mas talvez o ffmpeg seja inteligente o suficiente para corrigi-lo.
fonte
Se o áudio incorporado no avi não estiver no formato mp3, pode ser necessário especificar
-acodec mp3
como um parâmetro adicional. Ou qualquer que seja o seu codec de mp3 (provavelmente nos sistemas Linux-acodec libmp3lame
). Você também pode obter o mesmo efeito, independente de plataforma, especificando-f mp3
"forçar" o formato para mp3, embora nem todas as versões do ffmpeg ainda suportem essa opção. Sua milhagem pode variar.fonte
Para extrair sem conversão, uso uma entrada do menu de contexto - como ação personalizada do gerenciador de arquivos no Linux - para executar o seguinte (depois de verificar o tipo de áudio que o vídeo contém; por exemplo, o vídeo que contém
ogg
áudio):que é baseado no comando ffmpeg
ffmpeg -i INPUT -map 0:a -c:a copy OUTPUT
.Eu usei
-map 0:1
isso sem problemas, mas, como foi dito em um comentário de @LordNeckbeard, "0:1
não é garantido que o stream sempre seja áudio. Usar em-map 0:a
vez de-map 0:1
evitará ambiguidade".fonte
0:1
Não é garantido que o fluxo seja sempre áudio. Usar em-map 0:a
vez de-map 0:1
evitará ambiguidade.mediainfo
determinar a faixa de áudio e a escolhi assim:-map 0:a:1
onde a: 1 é o segundo índice de faixa de áudio, thx!-c:a copy
tornou muito mais rápido!Para quem procura a maneira mais simples de extrair o áudio de um arquivo de vídeo, mantendo os parâmetros do arquivo de vídeo original, você pode usar:
Por exemplo, executando:
extrai um
mp3
arquivo de áudio de ummov
arquivo de vídeo.fonte
Use em
-b:a
vez de-ab
como-ab
está desatualizado agora, também verifique se o caminho do arquivo de entrada está correto.Para extrair o áudio de um vídeo, usei o comando abaixo e está funcionando bem.
Aqui,
-y
- Sobrescreva arquivos de saída sem perguntar.-i
- O FFmpeg lê a partir de um número arbitrário de "arquivos" de entrada especificados pela-i
opção-vn
- Desativar gravação de vídeo-ar
- define a taxa de amostragem para fluxos de áudio se codificado-ac
- Defina o número de canais de áudio.-b:a
- Defina a taxa de bits do áudio-f
- formatoConfira isso no meu exemplo completo do projeto android FFmpeg no GitHub.
fonte