reconnect_delay_max example linux ffmpeg video-streaming

linux - example - reconnect_delay_max ffmpeg



Vuelva a transmitir una secuencia MPEG2 TS PAL con crtmpserver (1)

Quiero construir algún tipo de contenedor de flujo:

Tengo un antiguo Dreambox PAL Satélite con redes. Este flujo quiero transcodificar a un resultado más bajo que restream it.

Mi objetivo es tener un sitio web simple, donde este flujo se incruste a través de rtmp.

Creo que crtmpserver debería ser el software correcto. Por ahora tengo un sitio en ejecución y puedo reproducir archivos locales a través de jwplayer / crtmpserver.

Estoy buscando una solución para esto:

httpUrl -> ffmpeg -> crtmpserver

¿Es eso posible? ¿Puedo redirigir la salida de ffmpeg a una tubería archivada, y crtmpserver podría agarrar eso? ¿O ir con UDP?

Cualquier pista apreciada !!! ¡¡Gracias!!


Eso es fácil:

  1. Inicie el servidor (en el modo de consola para la depuración) Debería ver algo como esto:

    | tcp | 0.0.0.0 | 9999 | inboundTcpTs | flvplayback |

Básicamente, ese es un aceptador tcp para transmisiones mpegts

  1. Use ffmpeg para crear la secuencia:

    ffmpeg -i <fuente> <parámetros relacionados con la fuente> <parámetros_código_audio> <parámetros_código_video> -f mpegts "tcp: //127.0.0.1: 9999"

Ejemplo:

ffmpeg -i /tmp/aaa.flv -acodec copy -vcodec copy -vbsf h264_mp4toannexb -f mpegts "tcp://127.0.0.1:9999"

  1. Vuelve al servidor y mira la consola. Debería ver algo como esto:

    Stream INTS (6) con el nombre ts_13_257_256 registrado en la aplicación flvplayback del protocolo ITS (13)

ts_13_257_256 es el nombre de la transmisión. Ahora puede usar jwplayer o un reproductor similar y dirigirlo a esa secuencia

Si desea usar UDP, necesita detener el servidor y cambiar el archivo de configuración para que en lugar de tener

protocol="inboundTcpTs"

Deberías

protocol="inboundUdpTs"

Incluso puede copiar toda la sección y cambiar el número de puerto para tener ambas. Además, debes cambiar el ffmpeg para que en lugar de tener tcp: //127.0.0.1: 9999 puedas tener udp: //127.0.0.1: 9999

Ahora, si también quiere un nombre de flujo y no ese ts_13_257_256 (que es, por cierto, ts_protocolId_AudioPID_VideoPID) puede usar LiveFLV de una manera similar:

ffmpeg -i /tmp/aaa.flv -acodec copy -vcodec copy -vbsf h264_mp4toannexb -f flv -metadata streamName=myStreamName "tcp://127.0.0.1:6666"

Y el servidor debería mostrar:

Stream INLFLV(1) with name `myStreamName` registered to application `flvplayback` from protocol ILFL(3)

Ahí va, ahora tiene un nombre de secuencia "computada" que es myStreamName

Una última observación. Por favor haga este tipo de preguntas en la lista de correo de crtmpserver. Serás mejor escuchado. Puede encontrar recursos aquí: http://www.rtmpd.com/resources/ Busque el grupo de google en

Saludos, Andrei