FFMPEG H264 split demux a stream video

0

Eu tenho um vídeo H264 (armazenado em um arquivo 264). Com ffplay vejo que:

[NULL @ 00000000003454a0] start time for stream 0 is not set in estimate_timings _from_pts
[mpeg @ 0000000000344560] Could not find codec parameters for stream 0 (Audio: mp2, 0 channels): unspecified frame size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, mpeg, from 'int_max.264':
 Duration: 03:37:45.30, start: 35437.583167, bitrate: 6574 kb/s
   Stream #0:0[0x1c0]: Audio: mp2, 0 channels
   Stream #0:1[0x1e1]: Video: h264 (Constrained Baseline), yuv420p, 704x576, 25 tbr, 90k tbn
   Stream #0:2[0x1e2]: Video: h264 (Constrained Baseline), yuv420p, 704x576, 25 tbr, 90k tbn
   Stream #0:3[0x1e0]: Video: h264 (Constrained Baseline), yuv420p, 704x576, 25 tbr, 90k tbn
   Stream #0:4[0x1e3]: Video: h264 (Constrained Baseline), yuv420p, 704x576, 25 tbr, 90k tbn

É possível dividir este arquivo em quatro arquivos únicos h264, um arquivo para qualquer fluxo ?? Posso fazer isso com o ffmpeg? Como isso é possível? Posso me dar um conselho?

Eu tenho FFmpeg e x264 disponíveis. Fico feliz em usar a linha de comando do FFmpeg ou o meu próprio programa vinculado ao ffmpeg de bibliotecas x264.

    
por Luke 19.04.2014 / 11:57

1 resposta

1

Você pode usar -map para selecionar seus fluxos desejados e -codec copy (ou o -c copy alias) para usar o modo copiar cópia em vez de recodificar:

ffmpeg -i input \
-map 0:v:0 -codec copy output0 \
-map 0:v:1 -codec copy output1 \
-map 0:v:2 -codec copy output2 \
-map 0:v:3 -codec copy output3

0:v:3 refere-se a: selecione a primeira entrada ( 0 ), selecione o tipo de fluxo de vídeo ( v ), selecione o quarto fluxo de vídeo ( 3 ). Observe que ffmpeg começa a contar a partir de 0 para -map , e é por isso que 3 é o quarto fluxo.

O exemplo acima, no seu caso, é o mesmo que:

ffmpeg -i input \
-map 0:1 -codec copy output0 \
-map 0:2 -codec copy output1 \
-map 0:3 -codec copy output2 \
-map 0:4 -codec copy output3

... mas geralmente acho o primeiro método mais flexível.

    
por 19.04.2014 / 21:45