Como concatenar ou mesclar 2 ou mais arquivos MP4, também em um arquivo MP4 de saída final?
Eu tentei na janela do DOS usar o comando COPY (eu li em algum lugar), mas ele não funciona bem.
Como concatenar ou mesclar 2 ou mais arquivos MP4, também em um arquivo MP4 de saída final?
Eu tentei na janela do DOS usar o comando COPY (eu li em algum lugar), mas ele não funciona bem.
Respostas:
O MP4Box pode fazer isso, embora você queira usar uma GUI como YAMB ou My MP4Box GUI . (Nota: não é o meu programa pessoalmente, é apenas o nome.) Os binários MP4Box para Windows estão disponíveis neste site .
Exemplo:
MP4Box -tmp $HOME -add vid.01.m4v \
-cat vid.02.m4v -cat vid.03.m4v vid-out.mp4
Eu recomendaria usind ffmpeg , que está disponível para Mac OS X, Linux e Windows .
Aqui está um bom exemplo de como concatenar dois filmes: http://www.ffmpeg.org/faq.html#SEC27
Na última etapa, você só precisa criar um contêiner MP4 para o arquivo resultante.
Você pode tentar fazer isso com o ffmpeg:
mkfifo temp0 temp1
ffmpeg -i input0.mp4 -c copy -bsf h264_mp4toannexb -f mpegts -y temp0 2> /dev/null & \
ffmpeg -i input1.mp4 -c copy -bsf h264_mp4toannexb -f mpegts -y temp1 2> /dev/null & \
ffmpeg -f mpegts -i "concat:temp0|temp1" -c copy -absf aac_adtstoasc output.mp4
Isso não recodifica nada, coloca-os em um novo contêiner de fluxo de transporte, o que os torna mais fáceis de concatenar e depois os concatenam novamente em um MP4. Se o output.mp4 já existir, o comando falhará. A versão acima usa pipes nomeados, você está em um sistema que não suporta aqueles que você precisaria usar arquivos intermediários:
ffmpeg -i input0.mp4 -c copy -bsf h264_mp4toannexb temp0.ts
ffmpeg -i input1.mp4 -c copy -bsf h264_mp4toannexb temp1.ts
ffmpeg -i "concat:temp0.ts|temp1.ts" -c copy -absf aac_adtstoasc output.mp4
Atualização: Apenas verifiquei o avidemux como eu o instalei, depois de ler a outra resposta. É o que você está procurando (não achava que pudesse fazer MP4 por causa do nome…).
Acho que o VirtualDubMod é compatível com mp4, mas não o usei, então não sei ao certo.
Você pode querer conferir o MeGUI . É um aplicativo e ferramentas bastante complexos e ricos em recursos.
A ferramenta para incorporar em um contêiner (mp4 no seu caso) é chamada muxer, que provavelmente não é possível concatená-los.
Você pode usá-lo em combinação com o VirtualDub. Virtualdub para concatenar os fluxos de vídeo e o muxer para torná-lo um mp4 novamente (sem a necessidade de recodificar).
Estou fazendo isso com o mencoder, depois de convertê-los para avi com ffmpeg
aqui está um script simples, supondo que você tenha 15 arquivos, denominados 01.mp4 ... 15.mp4
#!/bin/bash
for j in `seq -w 1 15`;
do
echo converting file $j.avi
ffmpeg -i $j.mp4 $j.avi
echo adding file $j.avi to list
z="$z $j.avi"
done
echo doing append
mencoder -oac copy -ovc copy $z -o all.avi
Felicidades
Aqui está o comando:
ffmpeg -i concat:"video1.ts|video2.ts"