Eu tenho um arquivo que termina em .ts (por exemplo, aqui estão os primeiros 10 MB ). Gostaria de convertê-lo para um formato de fluxo mais principal (por exemplo, mp4, MPEG2-PS ...), de uma maneira sem perdas, se possível (ou seja, remuxando).
Eu li o Como converter arquivos .ts em algo útil? questão. Eu tentei avidemux
com as configurações "copiar" para os fluxos de vídeo e áudio e o formato de contêiner "PS" para MPEG. Isso falhou com a mensagem de erro "Áudio incompatível / 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 possui o vídeo certo, mas sem som, pelo menos quando reproduzido com o VLC. Isso é bastante intrigante, 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 da 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.
Edição: Eu tentei VLC, como sugerido por @ Daniel. Foi quase perfeito. Foi rápido e fácil de usar. Eu apenas tive que clicar em "Converter / Salvar", adicionar o arquivo de entrada, selecionar o perfil MP4, configurar o codec de vídeo e codec de áudio para "Manter trilha de vídeo / áudio original", escolher um arquivo de destino e clicar em "Iniciar". O vídeo parecia perfeito, mas o áudio estava de alguma forma ligeiramente corrompido, mas pode ser causado por algo bastante exótico no fluxo de áudio do meu vídeo.
ffmpeg
.Respostas:
Matroska (MKV)
Isso transmitirá a cópia (re-mux) de todos os fluxos:
A
-map 0
opção é usada para incluir todos os fluxos. Caso contrário, ele usará o comportamento de seleção de fluxo padrão que resultaria em apenas um fluxo por tipo de fluxo sendo selecionado. Como o Matroska pode lidar com a maioria dos fluxos arbitrários que eu incluí-map 0
.MP4
Isso transmitirá a cópia (re-mux) de todos os fluxos:
Isso irá recodificar o vídeo para H.264 e copiar o áudio em stream:
O próximo exemplo irá recodificar o vídeo e o áudio:
Exemplo H.264 sem perdas:
Arquivos sem perdas serão enormes.
Veja FFmpeg Wiki: H.264 para mais informações.
fonte
ffmpeg -i 10MB.ts -c copy output.mkv
. Você vai ter erro:Error parsing AAC extradata, unable to determine samplerate
. É por isso que meu exemplo MKV recodificou o áudio. Veja também # 4472: A cópia do AAC do fluxo sem falha de codificação e lavf / mkv: corrija o remuxing do AAC . No entanto, nada disso pode se aplicar ao seu arquivo de entrada grande e não truncado e pode funcionar conforme o esperado.ffmpeg -i input -c:v copy -c:a aac output.mkv
funcionou perfeitamente. O vídeo foi remuxado e o áudio soa tão bom quanto o original, sem a leve corrupção que tive ao converter com o VLC.O VideoLAN (VLC - http://www.videolan.org/vlc/index.html ) converterá facilmente praticamente qualquer coisa em qualquer coisa.
Experimente. É executado no Linux, Windows e Mac OS X e possui uma interface muito amigável.
fonte
Como complemento à outra resposta de @llogan - como uma cópia de fluxo é preferível de qualquer maneira:
Utilizo há muito tempo alguns comandos para extrair áudio sem alterar o nome dos arquivos, que podem ser adaptados aos apresentados aqui, para integrá-los aos menus de contexto dos gerenciadores de arquivos.
Portanto, para "desmuxificação e muxing" sem alterar o nome do arquivo, use:
Eu adicionei isso às ações personalizadas do Thunar e à ferramenta de configuração de ações do FileManager (Nautilus, Nemo, Caja, PCManFM), da seguinte forma:
enquanto o restringe a "* .ts" em Thunar e
video/mp2t
em Ações do FileManager.fonte