Juntando 2 vídeos usando o ffmpeg

0

Meu comando é:

ffmpeg -y -i 2.mp4 -i 2.mp4 -filter_complex '[0:0] [0:1] [1:0] [1:1] concat=n=2:v=1:a=1 [v] [a]' -map '[v]' -map '[a]' output.mp4

o resultado é:

ffmpeg version N-50911-g9efcfbe Copyright (c) 2000-2013 the FFmpeg developers built on Mar 13 2013 21:26:48 with gcc 4.7.2 (GCC) configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnu tls --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable-libgsm --enable-libilbc --enable-libmp3lame --enable-libopencore -amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex - -enable-libtheora --enable-libtwolame --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxa vs --enable-libxvid --enable-zlib libavutil 52. 19.100 / 52. 19.100 libavcodec 55. 0.100 / 55. 0.100 libavformat 55. 0.100 / 55. 0.100 libavdevice 54. 4.100 / 54. 4.100 libavfilter 3. 45.103 / 3. 45.103 libswscale 2. 2.100 / 2. 2.100 libswresample 0. 17.102 / 0. 17.102 libpostproc 52. 2.100 / 52. 2.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '2.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 date : 2015-07-02T14:59:07.00754+03:00 encoder : Lavf55.0.100 Duration: 00:00:07.03, start: 0.000000, bitrate: 24 kb/s
Stream #0:0(und): Video: h264 (High 4:4:4 Predictive) (avc1 / 0x31637661), yuv444p, 500x281, 21 kb/s, 29.74 fps, 29.74 tbr, 11896 tbn, 59.48 tbc Metadata: handler_name : VideoHandler
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from '2.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 date : 2015-07-02T14:59:07.00754+03:00 encoder : Lavf55.0.100 Duration: 00:00:07.03, start: 0.000000, bitrate: 24 kb/s
Stream #1:0(und): Video: h264 (High 4:4:4 Predictive) (avc1 / 0x31637661), yuv444p, 500x281, 21 kb/s, 29.74 fps, 29.74 tbr, 11896 tbn, 59.48 tbc Metadata: handler_name : VideoHandler
[AVFilterGraph @ 020ae7c0] No such filter: '[0:0]' Error configuring filters.
    
por golden 02.07.2015 / 18:16

1 resposta

0

Suas duas entradas parecem ser o mesmo arquivo (2.mp4); para que você possa fazer uma cópia de fluxo de bits, conforme mencionado na página de documentação em Concatenando vídeos , conforme os parâmetros do codec corresponderem:

arquivo concat.txt:

file '/full/path/to/2.mp4'
file '/full/path/to/2.mp4'

e, em seguida, use o comando:

$ ffmpeg  -f concat -i concat.txt -c copy out.mp4

No entanto, você terá que atualizar para uma versão mais nova do ffmpeg , já que essa opção só foi adicionada após a v1.1.

O método que você está tentando usar (listado em 'concatenação de arquivos com diferentes codecs' ) observa que :

The concat filter is available in recent versions of ffmpeg.

(ênfase minha)

Então, você precisará atualizar se quiser usá-lo em arquivos com diferentes codecs.

Seu comando funciona para mim como está com outros arquivos de vídeo substituídos. Se você absolutamente não pode atualizar o ffmpeg, leia a seção do protocolo de concat da documentação para ver as opções:

If you have MP4 files, these could be losslessly concatenated by first transcoding them to mpeg transport streams. With h.264 video and AAC audio, the following can be used:

ffmpeg -i input1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate1.ts
ffmpeg -i input2.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate2.ts
ffmpeg -i "concat:intermediate1.ts|intermediate2.ts" -c copy -bsf:a aac_adtstoasc output.mp4

Eu incluo isso para completar, mas eu não usei esse método sozinho, ao contrário dos outros. Você também pode usar o script externo que eles observam se você tiver arquivos com codecs diferentes.

    
por 02.07.2015 / 18:36

Tags