FFMPEG - Como desativar o fluxo de transporte multiprograma LIVE?

3

Suponha que eu tenha um fifo de bytes que é essencialmente proveniente de uma placa de captura. Basicamente, isso não é um arquivo no disco.

Os dados neste fifo são um multi-programa MPEG-TS. Existem três programas, cada um contendo um fluxo de vídeo e um ou mais fluxos de áudio.

Quando executo o FFmpeg canalizando o fifo, ele exibe os programas e os fluxos dentro dele. No entanto, às vezes o Programa 1 contém fluxos 0: 1 e 0: 3 e outras vezes pode conter 0: 4 e 0: 2. Mesmo que o PID permaneça sempre o mesmo, o FFmpeg tende a fornecer uma numeração aleatória.

Minha pergunta: Existe uma maneira de selecionar os fluxos apropriados - estou bem com a seleção por PID - usando o FFmpeg? (Estou usando o CLI, btw)

Tenha em mente que a opção map no FFmpeg não funciona porque os números do stream são "randomizados" toda vez que eu executo o comando ffmpeg.

    
por Macho Matt 06.10.2011 / 19:49

1 resposta

5

Digamos que você esteja capturando usando v4l2 de / dev / video0, então você pode mapear usando o id do programa assim:

ffmpeg -i /dev/video0 -acodec copy -vcodec copy -map 0:p:keep_pid -map -0:p:first_remove_pid -map -0:p:second_remove_pid output.m2ts
Checkout: link e link

    
por 13.06.2012 / 16:52

Tags