es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

ffmpeg transmitir HLS a nginx webdav. Eliminar segmentos antiguos.

Estoy intentando transmitir un archivo mp4 en bucle a mi servidor nginx. Y necesito eliminar los segmentos antiguos:

ffmpeg -re -stream-loop -1 -i /data/samples/BigBuckBunny.mp4 -c copy -f hls -hls_time 5 -hls_flags delete_segments -hls_list_size 5 http://127.0.0.1:8080/upload/stream.m3u8

Todo está bien, pero cuando ffmpeg intenta eliminar el segmento antiguo, obtengo este error en nginx:

22#22: *73174 DELETE con cuerpo no es compatible, cliente: 127.0.0.1, servidor: _, solicitud: “DELETE /upload/stream16.ts HTTP/1.1”, host: “127.0.0.1:8080”

Mi configuración de nginx:

location /upload {
root /data/live;
dav_access user:rw group:rw all:rw;
dav_methods PUT DELETE MKCOL COPY MOVE;
create_full_put_path on;
charset utf-8;
autoindex on;
}

ffmpeg 4.4.1

nginx 1.21.4

¿Qué estoy haciendo mal?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Según el mensaje de error, parece que nginx no puede manejar las solicitudes DELETE con un cuerpo. Esto es probablemente debido a un problema de configuración o a una limitación de la versión actual de nginx.

    Una posible solución sería utilizar un método diferente para eliminar segmentos antiguos, como un cron job o un script separado que periódicamente elimine archivos antiguos del servidor.

    Alternativamente, podrías intentar actualizar a una versión más reciente de nginx que admita solicitudes DELETE con un cuerpo. También puede ser útil revisar la configuración de nginx para asegurarse de que esté configurado correctamente para manejar solicitudes WebDAV.

Comments are closed.