ffmpeg - crear - servidor rtmp gratis
Usando FFMPEG para transmitir continuamente archivos de videos a un servidor RTMP (1)
Actualización (ya que no puedo eliminar la respuesta aceptada): la solución adecuada es implementar un demuxer personalizado, similar al concat one. Actualmente no hay otra forma limpia. ¡Tienes que ensuciarte las manos y codificar!
Debajo hay un truco feo. Esta es una muy mala manera de hacerlo, ¡simplemente no lo hagas!
La solución utiliza el demultiplexor de concat y asume que todos sus archivos multimedia de origen usan el mismo códec. El ejemplo se basa en MPEG-TS, pero lo mismo se puede hacer para RTMP.
Cree un archivo de lista de reproducción que contenga una gran lista de puntos de entrada para su lista de reproducción dinámica con el siguiente formato:
file ''item_1.ts'' file ''item_2.ts'' file ''item_3.ts'' [...] file ''item_[ENOUGH_FOR_A_LIFETIME].ts''
Estos archivos son solo marcadores de posición.
Cree un script que realice un seguimiento de su índice de lista de reproducción actual y cree enlaces simbólicos sobre la marcha para
current_index + 1
ln -s /path/to/what/to/play/next.ts item_1.ts
ln -s /path/to/what/to/play/next.ts item_2.ts
ln -s /path/to/what/to/play/next.ts item_3.ts
[...]
Comienza a jugar
ffmpeg -f concat -i playlist.txt -c copy output -f mpegts udp://<ip>:<port>
Ser perseguido y llamado por un administrador de sistema enojado
ffmpeg
maneja la transmisión RTMP como entrada o salida, y está funcionando bien.
Quiero transmitir algunos videos (una lista de reproducción dinámica administrada por un script de python) a un servidor RTMP, y actualmente estoy haciendo algo bastante simple: transmitir mis videos uno por uno con FFMPEG al servidor RTMP, sin embargo, esto causa un corte de conexión cada vez que termina un video, y la transmisión está lista para comenzar cuando comienza el siguiente video.
Me gustaría transmitir esos videos sin interrupciones de conexión continuamente, luego la transmisión podría ser vista correctamente.
Uso este comando para transmitir mis videos uno por uno al servidor
ffmpeg -re -y -i myvideo.mp4 -vcodec libx264 -b:v 600k -r 25 -s 640x360 /
-filter:v yadif -ab 64k -ac 1 -ar 44100 -f flv /
"rtmp://mystreamingserver/app/streamName"
Busqué algunas soluciones en Internet durante muchos días, y encontré a algunas personas hablando de usar una tubería con nombre como entrada en ffmpeg
, lo probé y no funcionó bien, ya que ffmpeg
no solo cierra la transmisión RTMP cuando llega un nuevo video pero también se cierra.
¿Hay alguna manera de hacer esto? (transmitir una lista de reproducción dinámica de videos con ffmpeg
al servidor RTMP sin saltos de conexión)