Qual é a quantidade mínima de metadados é necessária para transmitir apenas vídeo usando o libx264 para codificar no servidor e libffmpeg para decodificar no cliente?

StackOverflow https://stackoverflow.com//questions/9710471

Pergunta

Eu quero transmitir vídeo (sem áudio) de um servidor para um cliente.Eu codificarei o vídeo usando o libx264 e decodificá-lo com ffmpeg.Eu pretendo usar configurações fixas (no mínimo, elas serão conhecidas antecipadamente pelo cliente e pelo servidor).Eu queria saber se eu posso evitar embrulhar o vídeo compactado em um formato de contêiner (como MP4 ou MKV).

Agora eu sou capaz de codificar meus quadros usando x264_encoder_encode.Eu recebo um quadro comprimido de volta, e posso fazer isso para cada quadro.Que informações extras (se alguma coisa) eu preciso enviar para o cliente para que ffmpeg possa decodificar os quadros compactados e, mais importante, como posso obtê-lo com o libx264.Eu suponho que posso precisar gerar informações nais (x264_nal_encode?).Ter uma ideia de qual é o mínimo necessário para o vídeo, e como colocar as peças juntos seria realmente útil.

Foi útil?

Solução

Eu descobri que a quantidade mínima de informação são as unidades NAL de cada quadro, isso me dará um fluxo de H264 RAW.Se eu fosse escrever isso em um arquivo, eu poderia watchit usando o VLC se adicionar um .h264 Eu também posso abrir um arquivo usando ffmpeg, mas se eu quiser transmiti-lo, ele faz mais sentido usar o RTSP, e uma boa biblioteca de código aberto para isso é ao vivo555: http://www.live555.com/liveMedia/

Na sua FAQ, eles mencionam como enviar a saída do seu codificador para o Live555, e há origem para um cliente e um servidor.Eu ainda tenho que terminar de codificar isso, mas parece uma solução razoável

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top