Juntando-se ao H264 * sem * recodificação

39

Eu tenho duas metades de um único show em dois arquivos .MP4, codificados em H264. Gostaria de me juntar a eles sem recodificar.

Isso é possível?

Consegui criar um vídeo associado como um arquivo Quicktime (.mov) usando o Quicktime Pro, mas o Quicktime Pro não o converterá novamente em .MP4 sem recodificar. Isso ocorre porque, olhando dentro do arquivo .mov, os dois vídeos H264 ainda estão separados como "objetos" individuais.

Também estou lutando com o MPEG StreamClip sem chegar a uma solução real. Mas eu posso ter perdido alguma coisa.

Observe que não tenho o mesmo problema com arquivos MPEG2. Posso exportá-los para um contêiner .MPEG ou um arquivo .TS, por exemplo, e depois posso ingressar neles sem recodificar usando o MPEG Streamclip.

Qualquer sugestão é bem-vinda, de preferência usando o software Mac.

jdmuys
fonte
11
Obviamente, os vídeos precisam ter os mesmos aspectos para serem juntados sem recodificação (mesmo tamanho, taxa de bits, etc.). Você deve conseguir fazer isso no VirtualDubMOD: abra o MP4 e, em seguida, Anexe o segmento .
Synetech 10/03/11

Respostas:

41
ffmpeg -i q.mp4 -c copy -bsf h264_mp4toannexb q.ts

ffmpeg -i r.mp4 -c copy -bsf h264_mp4toannexb r.ts

ffmpeg -i "concat:q.ts|r.ts" -c copy -bsf aac_adtstoasc qr.mp4

Como concatenar arquivos flv em um

Steven Penny
fonte
E se for m4v (não h264 mp4), qual bsf deve ser usado?
Edison
2
Parei -bsf aac_adtstoascpara o comando concat
Csaba Toth
Eu precisava deixar de lado todos os -bsfargumentos, então funcionou para mim.
KittMedia 9/11
Fazendo isso no MacOS 10.13.3, omiti todas as -bsf xxxcoisas com bons resultados. No entanto, na segunda vez que tentei, a segunda metade do filme combinado foi corrompida. Acontece que, por razões desconhecidas, o Handbrake havia codificado as duas metades com larguras diferentes (640 vs. 636). Eu tinha usado a mesma predefinição nos dois casos. Enfim, voltei e usei o Handbrake novamente no 1º tempo, que agora corresponde ao 2º tempo. O filme recombinado foi bom. Dica: o exiftool exibirá tudo sobre um arquivo mp4 / m4v.
21818 Jamie Cox
15

O MP4Box fará isso por você:

MP4Box -cat File01.m4v -cat File02.m4v File-joined.m4v

O MP4Box é multiplataforma e funciona no OSX, no entanto, tentei isso no Ubuntu Linux com vídeos H264 criados pela Handbrake para o iPhone 4S.

Isso funciona muito rápido, pois os arquivos não são recodificados.

thinkOfaNumber
fonte
11
Funciona bem. Use sudo apt-get install gpacpara instalá-lo. Você pode usar esta linha de comando se tiver muitos arquivos para ingressar:MP4Box $(for file in single*m4v; do echo -cat $file; done) joined.m4v
guettli
2

A opção Quicktime MP4 Codec possui um modo "passagem".

Aqui está uma receita detalhada para juntar dois vídeos MP4 H264, usando o Quicktime. Observe que o Quicktime X ainda não é avançado o suficiente, portanto, use o Quicktime 7 (uma instalação opcional com o Snow Leopard):

  1. Abra os dois vídeos H264 no Quicktime 7. Vamos supor que eles sejam nomeados video1.mp4 e video2.mp4.
  2. Trabalhando em video1.mp4, selecione Tudo e Copie.
  3. Mude para video2.mp4, verifique se o "cursor" está no início do vídeo e cole. Isso insere o conteúdo de video1.mp4 na frente de video2.mp4.
  4. Esta etapa é provavelmente opcional . "Salvar como" o video2.mp4 modificado. Você poderá salvar apenas no formato .mov. Salvei como um filme independente, mas acho que um filme de referência também funcionaria. Eu usei o nome do arquivo "video.mov".
  5. Selecione "Exportar" no menu arquivo para exportar video.mov para o arquivo H264 associado. O "Exportar" para selecionar é "Filme para MPEG-4". A predefinição não é importante, eu escolhi "LAN / Intranet". A predefinição não é importante porque a substituímos na próxima etapa.
  6. Clique em "Opções" para acessar a caixa de diálogo de configurações. No painel Vídeo, "Formato de Vídeo" está selecionado para ser "H.264". Clique no menu, selecione "Passagem". Como esperado, todas as outras opções serão desativadas.
  7. Clique em OK, depois em Salvar, e veja o seu arquivo associado ser salvo na velocidade do seu disco rígido.

Você também pode usar o SimpleMovieX , um editor de vídeo shareware que anuncia exatamente isso como um recurso.

jdmuys
fonte
11
Salvando no mov, suponho que precisará de alguma forma de recodificação, infelizmente.
Csaba Toth
0

Eu acho que isso deve ser possível, embora as duas partes precisem ser as "mesmas" certas maneiras (resolução etc.) para que a junção funcione. Parece que provavelmente será o caso da sua situação.

Você pode tentar esta ferramenta: http://www.smlabs.net/tsmuxer_en.html ... Eu não a usei, mas ela lista especificamente os arquivos de união como parte de seu conjunto de recursos e o H.264 é uma das codificações suportadas.

Zac Thompson
fonte
Obrigado pelo link. Não pude experimentá-lo, pois o site diz que este programa não suporta o Snow Leopard. Além disso, acabei de encontrar uma solução funcional usando apenas o Quicktime (veja minha resposta). Além disso, embora eu não conheça esse caso, algumas ferramentas anunciam a junção de arquivos de vídeo, mas o fazem com recodificação completa, o que é, na melhor das hipóteses, enganoso.
Jdmuys 23/04
Me desculpe; Eu interpretei isso errado no site. Que bom que você encontrou uma abordagem mais simples - parecia estranho que seria necessário obter uma ferramenta especial para isso.
Zac Thompson
0

Use mkvtoolnix . Em seguida, abra "mkvtoolnix-gui.exe" (no Windows 8.1 64bits, ele está localizado em: C: \ Arquivos de Programas \ MKVToolNix \ mkvtoolnix-gui.exe). Adicione o primeiro arquivo. Em seguida, selecione esse primeiro arquivo e clique com o botão direito em "anexar arquivos" e selecione o (s) arquivo (s) que deseja mesclar. Talvez mude a pasta de destino e o nome do arquivo. Por fim, clique em "iniciar multiplexação".

Erb
fonte