Use o ffmpeg para mesclar arquivos mpeg2 com o áudio pcm_dvd

2

Eu tenho um DVD contendo 4 arquivos de vídeo mpeg2 gravados com áudio codificado pcm_dvd. Eu quero concatir esses 4 arquivos juntos, incluindo os fluxos de áudio. No entanto, quando concatro esses arquivos com ffmpeg e o demuxer de concat, o arquivo .mpg de saída tem um fluxo de áudio corrompido que agora afirma estar no formato mp2.

Aqui está a saída do ffprobe em um dos 4 arquivos de entrada:

Stream #0:0[0x1e0]: Video: mpeg2video (Main), yuv420p(tv), 720x480 [SAR 32:27 DAR 16:9], 29.97 fps, 29.97 tbr, 90k tbn
Stream #0:1[0xa0]: Audio: pcm_dvd, 48000 Hz, 2 channels, s16, 1536 kb/s

E aqui está o comando que usei para concatenar esses arquivos:

ffmpeg -f concat -safe 0 -i /tmp/files.txt -c copy -y out.mpg

onde /tmp/files.txt é uma lista das 4 partes do arquivo, conforme definido na documentação concat .

O arquivo de saída é assim:

[mp2 @ 0x2af9d00] Header missing
    Last message repeated 282 times
[mpeg @ 0x2af66e0] decoding for stream 1 failed
[mpeg @ 0x2af66e0] Could not find codec parameters for stream 1 (Audio: mp2, 0 channels, s16p): unspecified frame size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, mpeg, from 'out.mpg':
  Duration: 03:15:36.75, start: 0.533367, bitrate: 7184 kb/s
    Stream #0:0[0x1e0]: Video: mpeg2video (Main), yuv420p(tv), 720x480 [SAR 32:27 DAR 16:9], 29.97 fps, 29.97 tbr, 90k tbn
    Stream #0:1[0x1c0]: Audio: mp2, 0 channels, s16p

O cabeçalho mp2 está faltando (não sei porque agora é mp2) e ao reproduzir o vídeo com vlc, o áudio certamente está corrompido. Como devo concatenar esses arquivos para codificar corretamente o áudio? Observe que também tentei usar o protocolo de concat em vez do demuxer, com o mesmo resultado

    
por tyleha 28.11.2017 / 22:04

1 resposta

2

Neste momento, o ffmpeg não grava o cabeçalho para fluxos LPCM em MPEG-1/2 durante a cópia em fluxo.

Use

ffmpeg -f concat -safe 0 -i /tmp/files.txt -c copy -c:a pcm_s16be -y out.mpg
    
por 29.11.2017 / 08:13