Combine segmentos TS de vídeo e áudio provenientes do fluxo HLS

7

O Apple HLS transmite arquivos MPEG-2 TS contendo dados de vídeo e áudio em formato de fluxo elementar em pacotes. Esses segmentos ( .tsarquivos) podem ser unidos para criar o vídeo final.

A versão recente do HLS agora pode produzir segmentos com dados de vídeo apenas em arquivos TS e dados de áudio em outros arquivos TS. Isso é usado para veicular vídeo em vários idiomas.

Independentemente do próprio HLS, como posso processar remotamente arquivos TS contendo dados de vídeo e dados de áudio em um arquivo TS? Unir arquivos TS não funciona; Recebo dados do primeiro arquivo TS combinados com o mesmo tipo de dados dos próximos arquivos TS (apenas vídeo ou áudio).

Velcro
fonte
Não sei o suficiente para dar uma solução real, mas algumas leituras parecem indicar que o FFMPEG pode ser capaz de lidar com isso.
AJ Henderson
Acabei de verificar e sim, você está certo. O FFmpeg lida com o HLS com várias faixas de áudio. Vou dar uma olhada na fonte agora.
Velcro

Respostas:

3

Você pode usar o tsMuxer para adicionar o fluxo de áudio de um arquivo .ts ao arquivo .ts que contém o vídeo ou vice-versa. Isso se chama muxing e não afeta a qualidade do áudio ou vídeo de forma alguma.

PTS
fonte
1

Você tem um m3u8arquivo? Nesse caso, suponho que você possa fazer

ffmpeg -i indexfile.m3u8 -acodec copy -vcodec copy output.ts

Você também pode convertê-lo diretamente no contêiner mp4:

ffmpeg -i indexfile.m3u8 -acodec copy -vcodec copy output.mp4
erik
fonte
Isso não funciona quando o indexfile.m3u8 tem uma url separado para áudio e uma url separado para video_01.m3u8
Chovy
@chovy: Você pode me mostrar esse arquivo? Eu acho que deveria funcionar com a opção -mape talvez uma segunda opção -ique use o mesmo arquivo de entrada (no seu caso video_01.m3u8).
Erik
ele funciona se eu façoffmpeg -i <audio-stream> -i <video-stream> -async 1 -c copy test.m3u8
Chovy