Como converter o arquivo .ts no arquivo de fluxo principal sem perdas?

7

Eu tenho um arquivo que termina em .ts (por exemplo, aqui estão os primeiros 10 MB ) . Eu gostaria de convertê-lo para um formato de fluxo mais principal (por exemplo, mp4, MPEG2-PS ...), de uma maneira sem perda, se possível (ou seja, remuxando).

Eu li o Como faço para converter arquivos .ts em algo útil? pergunta. Eu tentei avidemux com as configurações "copiar" para os fluxos de áudio e vídeo e o formato de contêiner "PS" para MPEG. Isso falhou com a mensagem de erro "Incompatible audio / Para DVD, o áudio deve ser 48 kHz MP2 (estéreo), AC3, DTS ou LPCM (estéreo)".

Eu também tentei o comando da CLI sugerido.

avconv -i 10MB.ts -vcodec copy -acodec copy 10MB.mpg

O arquivo de saída tem o vídeo certo, mas nenhum som, pelo menos quando reproduzido com o VLC. Isso é bastante confuso, porque avconv parece ter detectado corretamente o fluxo de áudio.

Input #0, mpegts, from '10MB.ts':
  Duration: 00:00:06.36, start: 51523.824800, bitrate: 12563 kb/s
  Program 37888 
    Stream #0.0[0x100]: Video: mpeg2video (Main), yuv420p, 1440x1080 [PAR 4:3 DAR 16:9], 20000 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
    Stream #0.1[0x110]: Audio: aac, 0 channels, fltp, 144 kb/s
    Stream #0.2[0x130]: Data: [6][0][0][0] / 0x0006
    Stream #0.3[0x138]: Data: [6][0][0][0] / 0x0006
    Stream #0.4[0x140]: Data: [13][0][0][0] / 0x000D
    Stream #0.5[0x160]: Data: [13][0][0][0] / 0x000D
    Stream #0.6[0x161]: Data: [13][0][0][0] / 0x000D
    Stream #0.7[0x162]: Data: [13][0][0][0] / 0x000D
    Stream #0.8[0x170]: Data: [13][0][0][0] / 0x000D
    Stream #0.9[0x171]: Data: [13][0][0][0] / 0x000D
    Stream #0.10[0x172]: Data: [13][0][0][0] / 0x000D
Output #0, mpeg, to '10MB.mpg':
  Metadata:
    encoder         : Lavf54.20.4
    Stream #0.0: Video: mpeg2video, yuv420p, 1440x1080 [PAR 4:3 DAR 16:9], q=2-31, 20000 kb/s, 90k tbn, 90k tbc
Stream mapping:
  Stream #0:0 -> #0:0 (copy)

Eu também tentei o comando CLI sugerido nos comentários de outra pergunta .

avconv -i 10MB.ts -c:v copy -c:a libfaac 10MB.mp4

Novamente, nenhum som no arquivo de saída.

EDIT: Eu tentei VLC como sugerido por @ Daniel. Foi quase perfeito. Foi rápido e amigável. Eu só tinha que clicar em "Convert / Save", adicionar o arquivo de entrada, selecione o perfil MP4, configure codec de vídeo e codec de áudio para "Manter trilha de áudio / vídeo original", escolha um arquivo de destino e clique em "Iniciar". O vídeo parecia perfeito, mas o áudio estava um pouco corrompido, mas pode ser causado por algo bastante exótico no fluxo de áudio do meu vídeo.

    
por lacton 03.01.2016 / 18:44

2 respostas

8

Acho que há dois problemas aqui, e a entrada parece truncada ou danificada, por isso os resultados podem variar.

1. avconv tem bugs (como sempre)

Ele mostra o fluxo de áudio de entrada com 0 channels , o que está errado.

Obtenha uma compilação recente de ffmpeg . Eu não sei qual versão do Ubuntu você está usando, então o método mais fácil é usar uma construção estática recente . Basta baixar, extrair e executar. Além disso, você marcou sua pergunta com ffmpeg , então, suponho que você estaria disposto a usá-la ( avconv ! = ffmpeg ). Ele deve mostrar o número adequado de canais de áudio.

2. Use um formato de contêiner de saída compatível

Matroska

Isso fará com que transfira a cópia (re-mux) do vídeo e codifique novamente o áudio:

ffmpeg -i input -c:v copy -c:a aac output.mkv
  • Recodificar o áudio provavelmente é necessário neste caso porque o muxer Matroska se recusará a trocar um fluxo de áudio com extradata inválida.

  • As versões mais antigas do ffmpeg exigirão -strict experimental para o codificador AAC.

MP4

Isso recodificará o vídeo e o stream copiará o áudio:

ffmpeg -i input -c:v libx264 -c:a copy -bsf:a aac_adtstoasc output.mp4
  • Nesse caso, o aac_adtstoasc filtro de bitstream é necessário. Mais recentes ffmpeg builds podem adicionar isso automaticamente.
por LordNeckbeard 03.01.2016 / 20:11
1

O VideoLAN (VLC - link ) converterá facilmente qualquer coisa em qualquer coisa.

Dê uma chance. Ele roda no Linux, Windows e Mac OS X e tem uma interface muito amigável.

    
por Daniel 04.01.2016 / 01:52