Pregunta

así ...

Tengo datos de video RAW H.264 capturados a través de RTSP en un archivo local y estoy intentando reproducir el video en una aplicación Java FX. Para hacer esto, necesito usar la transmisión en vivo HTTP.

He prototipado con éxito una arquitectura Java FX que puede reproducir un video a través de HLS con un servidor local usando una carpeta local que contiene un archivo .m3u8 (índice HLS) y la recopilación de archivos .ts (MPEG-TS). La última pieza para mí es reemplazar los archivos .ts con archivos .264 / .H264 y en el servidor local, realice la conversión / envoltura de los datos del Anexo H.264 en MPEG-TS.

Estoy teniendo problemas para determinar lo que se requiere para obtener H.264 Anexo B en MPEG-TS. He encontrado la siguiente información ...

"El anexo B se usa comúnmente en formatos en vivo y de transmisión como Corrientes de transporte ... "

szatmary.org/blog/25

"El anexo B del documento especifica uno de estos formatos, que envuelve nal Unidades en un formato que se asemejan a un elemental de video MPEG tradicional. Corriente, lo que lo hace adecuado para su uso con contenedores como MPEG PS / TS No se puede proporcionar el encuadrado requerido ... "

wiki.multimedia.cx/?title=h.264

"Java FX admite un número de tipos de medios diferentes. Un tipo de medio es considerado como la combinación de un formato de contenedor y uno o más codificaciones. En algunos casos, el formato del contenedor podría ser simplemente un Corriente elemental que contiene los datos codificados ".

docs.oracle.com/javafx/2/api/javafx/scene/media/package-summary.html

"Use el atributo CODECS de la etiqueta EXT-X-Stream-INF. Cuando esto El atributo está presente, debe incluir todos los códecs y perfiles requeridos. para reproducir el arroyo ... "

desarrollador.apple.com/library/ios/documentation/networkingInternet/Conceptual/StreamingMediaGuide/FreQurrentyaskEstions/FreQuentlyEstQuestions.html

Parece que me falta algo simple en torno a las flujos de primaria y de transporte. He utilizado FFMPEG para convertir mi archivo H.264 en un archivo TS e intentar comprender las diferencias. Tengo una idea de las diferencias de formato aproximado, pero todavía me falta los detalles para hacerlo. ¿Alguien tiene un enlace que muestra esto o sabe algo simple sobre cómo servir los datos de H.264 Anexo B sobre MPEG-TS?

No estoy buscando usar una herramienta, necesito tener un formato de archivo personalizado localmente donde analice los datos del Anexo B de H.264 y realice el cambio de formato en la memoria, en la mosca. Sé de una manera de usar FFMPEG con tuberías para lograr esto, pero no quiero tener ninguna dependencia y rendimiento es importante.

¿Fue útil?

Solución

no es un cambio de formato.Es un contenedor.No hay necesidad de analizar el Anexo B para escribirlo a un archivo TS.La TS envuelve un PES que envuelve una corriente del anexo B.El formato MPEGTS es bastante complejo, especialmente sin una biblioteca de terceros.El código TS que escribí y uso en el trabajo es de aproximadamente 1000 líneas de C ++.

Para escribir código TS, comience por intentar leer un archivo TS usando un editor hexagonal y referenciar a la documentación de Wikipedia.El libro Video Demustificado también tiene una documentación bastante buena.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top