Como remover uma faixa de áudio de um arquivo de vídeo mp4?

84

Eu tenho um arquivo de vídeo mp4 com várias faixas de áudio. Eu gostaria de despir o resto das faixas e manter apenas um. Como faço isso?

    
por Tshepang 24.01.2011 / 22:24

10 respostas

97

Primeiro, execute ffmpeg -i file.mp4 para ver quais fluxos existem em seu arquivo. Você deveria ver algo assim:

Stream #0.0: Video: mpeg4, yuv420p, 720x304 [PAR 1:1 DAR 45:19], 23.98 tbr, 23.98 tbn, 23.98 tbc
Stream #0.1: Audio: ac3, 48000 Hz, 5.1, s16, 384 kb/s
Stream #0.2: Audio: ac3, 48000 Hz, 5.1, s16, 384 kb/s

Em seguida, execute ffmpeg -i file.mp4 -map 0:0 -map 0:2 -acodec copy -vcodec copy new_file.mp4 para copiar o fluxo de vídeo e o segundo fluxo de áudio para new_file.mp4 .

    
por 10.02.2011 / 12:48
83

Problema relacionado - remover todas as faixas de áudio de um arquivo mp4 pode ser feito assim:

ffmpeg -i input_file.mp4 -vcodec copy -an output_file.mp4
    
por 09.03.2012 / 19:05
6

Identifique números de fluxo:

$ ffmpeg -i in.mp4
   ...
   Stream #0:0: Video: ...
   Stream #0:1: Audio: ...
   Stream #0:2: Audio: ...

Use -map _file_:_stream_ para selecionar quais fluxos processar e produzir

$ ffmpeg -i in.mp4 -map 0:0 -map 0:2 -vcodec copy -acodec copy out.mp4

veja: link

    
por 29.06.2014 / 15:15
4

Você poderia tentar avidemux que lida apenas com um arquivo de áudio internamente (e, portanto, forçá-lo a selecionar uma faixa específica). Eu nunca tentei com o .mp4, mas funciona com outros formatos.

    
por 25.01.2011 / 20:59
3

Eu usei Avidemux (GUI) várias vezes e ffmpeg (console).

No Avidemux, você escolhe "Áudio" - > "Selecionar faixas" no menu principal; em seguida, salve seu vídeo como um novo arquivo.

Curiosamente, em alguns casos, o Avidemux produziu uma saída "melhor" do que o ffmpeg.

apenas no caso, o Avidemux e o ffmpeg estão no repositório padrão do Fedora Linux. (Tenho certeza que eles são padrão em outros sabores do Linux também.)

    
por 07.08.2013 / 16:21
1

-vn ou -an removerá todas as faixas de vídeo ou de áudio. O fornecimento de -vn -acodec copy removerá o vídeo. -an -vcodec copy removerá todo o áudio.

-vcodec copy especifica que o ffmpeg deve fazer uma cópia direta da trilha de vídeo existente (e não fazer nenhum processamento / codificação dela). Se você não especificá-lo, ele ainda funcionará, mas o ffmpeg poderá recodificar a trilha de vídeo existente e a operação usará mais CPU e poderá demorar consideravelmente mais tempo.

    
por 10.01.2015 / 14:11
0

Usando o avidemux na linha de comando.

(Na GUI do Avidemux, conforme descrito no link acima, você simplesmente seleciona / desmarca as trilhas de áudio e salve o arquivo (tudo é copiado para o novo AVI).)

Eu olhei que tipo de projetos são salvos como projetos do SpiderMonkey ou TinyPy para minhas ações, e descobriu-se que o projeto SpiderMonkey (JavaScript) não possui as ações de seleção de trilha de áudio que eu precisava, mas o TinyPy (Python) projeto tinha eles.

Eu removi tudo que não estava relacionado (uma dúzia de linhas desnecessárias) e é isso que obtive em some_series.py :

#PY  <- Needed to identify #
#--automatically built--

adm = Avidemux()

adm.audioClearTracks()
adm.audioAddTrack(1)

Deixa a faixa 1, mas descarta a faixa 0.

Em seguida, executei uma conversão em lote de muitos arquivos com um comando como este:

for f in *.avi; do avidemux3_cli --nogui --load "$f" --run ../some_series.py --save ../some_series/"${f%%.rus.eng.avi}".eng.avi --quit; done

Copia tudo, mas deixa tudo menos a faixa de áudio necessária.

A maneira de executar o avidemux a partir da linha de comando foi aprendida por mim no link , embora eles não mencionem os scripts Python, apenas os JS (que não funcionaram para mim).

    
por 30.12.2016 / 01:30
0

O programa ffmpeg foi substituído por avconv . avconv tem um uso muito semelhante a ffmpeg , portanto, todos os comandos neste post podem ser algo como:

avconv <old ffpmeg command line options>

Siga este link para instalar avconv se você estiver no Ubuntu.

    
por 12.04.2017 / 04:32
-1

Se você não se importa que o programa seja GUI, com o editor de vídeo do Blender você pode fazer isso e muito mais.

    
por 13.02.2015 / 10:03
-3

O FFMPEG pode ser uma solução útil para você.

$ man ffmpeg
    
por 25.01.2011 / 08:13