Somente vincular a uma solução é uma prática ruim. Pelo menos dê alguns exemplos.
Erik
1
Se houver apenas um fluxo de áudio dentro do MP4, o argumento -map não é necessário, ou seja. escrevendo isso é suficiente: ffmpeg -i INPUT.mp4 -c copy Output.aac
miyalys
Aqui está como criar no modo de lote. Primeiro, crie uma subpasta "out" onde estão os seus arquivos mp4. Em seguida, "abra a janela de comando" na pasta mp4 e cole o seguinte para% f em ("* .mp4") faça C: \ yourpath \ ffmpeg \ bin \ ffmpeg -i "% f" -c copy -map 0: a: 0 out / "% ~ nf.aac"
Vijay Jagdale 4/17
9
O mp4box também pode fazer isso.
Para desmuxar / extrair o aac do mp4 (assumindo que o áudio é a segunda faixa):
mp4box -raw 2 video.mp4
Isso criará automaticamente o arquivo de saída "video_track2.aac"
Se você quisesse controlar o nome do arquivo de saída, faria
mp4box -raw 2 video.mp4 -out audio.aac
Se você quiser voltar ao contêiner mp4 (ou seja, para o iTunes), você pode:
mp4box -single 2 video.mp4 -out audio.m4a
Você pode colocar isso em um script em lote para operar sobre todos os arquivos em um diretório:
for %%f in ("*.mp4") do (
mp4box -single 2 "%%f" -out "%%~nf.m4a"
)
+1 Obrigado, o comando -single é exatamente o que eu estava procurando (ele adiciona informações MP4 para crua)
Martin
6
Aqui estão os comandos reais a serem usados, pois todos os links fornecidos não os fornecem, e de qualquer maneira: os links apodrecem e morrem, portanto, sempre devem ser substituídos por respostas reais no stackexchange.
Funcionou muito bem (com projeto pai "ffmpeg.exe" em vez de "avconv.exe") e corrigiu o problema de saída .aac de código de tempo impreciso. Acontece que m4a é um formato de contêiner adequado.
SushiGuy
Estou recebendo "O arquivo de saída # 0 não contém nenhum fluxo"
Chris
0
Primeiro, basta usar o mkvtoolnix para converter o MP4 para MKV e usar o mkvextract gui para extrair a faixa necessária. GUI muito menos complicada e completa. Mudança absolutamente zero em qualquer componente.
Se for menos complicado, você pode descrever como fazer o que o OP quer fazer com essas ferramentas? Além disso, observe que a pergunta solicitou uma ferramenta de linha de comando.
20917 Scott
Na verdade, o mkvtoolnix é um front-end gráfico para a linha de comando mkvmerge.exe. Acredito que você também possa encontrar as opções da linha de comando e as informações de formatação de comando na linha. A GUI também tem a opção de criar arquivos em lote para trabalhar em vários arquivos.
Respostas:
FFmpeg pode fazê-lo. Aqui está uma lista de comandos que podem ser úteis para você. Vá aqui para obter instruções.
Exemplo:
-i
: Arquivo de entrada-c copy
: copia os fluxos de bits sem recodificar-map 0:a:0
: seleciona faixa de: 1º arquivo de entrada -> faixas de áudio -> primeira faixa (1ª faixa de áudio do 1º arquivo de entrada)Observe que ele funcionaria da mesma forma com
avconv
, que é uma bifurcaçãoffmpeg
.fonte
ffmpeg -i INPUT.mp4 -c copy Output.aac
O mp4box também pode fazer isso.
Para desmuxar / extrair o aac do mp4 (assumindo que o áudio é a segunda faixa):
Isso criará automaticamente o arquivo de saída "video_track2.aac"
Se você quisesse controlar o nome do arquivo de saída, faria
Se você quiser voltar ao contêiner mp4 (ou seja, para o iTunes), você pode:
Você pode colocar isso em um script em lote para operar sobre todos os arquivos em um diretório:
(script em lote inspirado em videohelp e stackoverflow )
Links para download:
https://github.com/gpac/gpac/releases
http://gpac.wp.mines-telecom.fr/downloads/gpac-nightly-builds/
fonte
Aqui estão os comandos reais a serem usados, pois todos os links fornecidos não os fornecem, e de qualquer maneira: os links apodrecem e morrem, portanto, sempre devem ser substituídos por respostas reais no stackexchange.
fonte
Primeiro, basta usar o mkvtoolnix para converter o MP4 para MKV e usar o mkvextract gui para extrair a faixa necessária. GUI muito menos complicada e completa. Mudança absolutamente zero em qualquer componente.
fonte
Super pode fazer isso também .
fonte