In https://desuarchive.org/g/thread/108785672 >>108814994 Why do people pay for streaming services which rip them off? Because they're too technologically illiterate to make a thing which can stream the video to them on any device on their LAN. They'd save money if they bought hard drives and did the following instead. How to do it: either play a video with mpv/browser and livestream your screen, or pipe the video file into FFmpeg. Both of those output to RTMP + HLS, watchable at http://10.0.0.72:8000/HLS.html Methods: - Get torrents, preferably over I2P - Play an Fmovies or 123movies episode/movie with your web browser (Fmovies doesn't have everything, such as "Smiling Friends") - Stream the piped video or screenshare with nginx+RTMP+HLS, guide/how-to: https://ariosunucu.online/raw/[TX here] Commands: [code]$ # Livestream your screen: $ ffmpeg -hide_banner -video_size 1280x866 -framerate 30 -f x11grab -i :0.0+0,140 -f pulse -i default -vcodec libx264 -profile:v baseline -pix_fmt yuv420p -vf "scale=-1:720" -c:a aac -f flv rtmp://localhost/live/stream $ # Consistently forces AAC params and resends TS headers so downstream HLS segments include audio: $ curl -sL https://web.archive.org/web/20251129064334/https://mirror.hep.gg/Plex/TV_Shows/Smiling%20Friends/Season%201/Smiling%20Friends%20-%20S01E02%20-%20Mr.%20Frog%20Bluray-1080p.mkv | ffmpeg -hide_banner -f matroska -i pipe:0 -c:v libx264 -profile:v baseline -pix_fmt yuv420p -vf "scale=-1:720" -c:a aac -b:a 192k -ar 48000 -ac 2 -muxdelay 0 -mpegts_flags +resend_headers -f flv rtmp://localhost/live/stream[/code] # 1. Livestream your screen: $ ffmpeg -hide_banner -video_size 1280x866 -framerate 30 -f x11grab -i :0.0+0,140 -f pulse -i default -vcodec libx264 -profile:v baseline -pix_fmt yuv420p -vf "scale=-1:720" -c:a aac -f flv rtmp://localhost/live/stream # 2. Consistently forces AAC params and resends TS headers so downstream HLS segments include audio: $ cat "/mnt/usb/Smiling Friends - S01E01 - Desmond's Big Day Out Bluray-1080p.mkv" | ffmpeg -hide_banner -f matroska -i pipe:0 -c:v libx264 -profile:v baseline -pix_fmt yuv420p -vf "scale=-1:720" -c:a aac -b:a 192k -ar 48000 -ac 2 -muxdelay 0 -mpegts_flags +resend_headers -f flv rtmp://localhost/live/stream # 3. Same as 2 but over the Internet: $ curl -sL https://web.archive.org/web/20251129064334/https://mirror.hep.gg/Plex/TV_Shows/Smiling%20Friends/Season%201/Smiling%20Friends%20-%20S01E02%20-%20Mr.%20Frog%20Bluray-1080p.mkv | ffmpeg -hide_banner -f matroska -i pipe:0 -c:v libx264 -profile:v baseline -pix_fmt yuv420p -vf "scale=-1:720" -c:a aac -b:a 192k -ar 48000 -ac 2 -muxdelay 0 -mpegts_flags +resend_headers -f flv rtmp://localhost/live/stream /usr/local/nginx/html/HLS.html = http://10.0.0.61:8000/HLS.html = https://arweave.ar/raw/vFhU3M40KYIPZmOGF-IeUgswwC8zJcx-x9u0Ho_9-Ng = uses cdn.jsdelivr.net, so here's that file: $ curl https://cdn.jsdelivr.net/npm/hls.js@latest | zstd -19 > https---cdn.jsdelivr.net-npm-hls.js-latest.zst # output: meta https://flechemano4.xyz/raw/47-6UyB7Ky3_S6O7OM9FHYMqgB0Ng-XT_8ILLcqzzcI -> data https://ariosunucu.online/raw/aoIXp73Qk0Hr2E0VkH0WGXUwHCVzIYvgnjGosWytsXw = 6630916bd20d19139af544fb02f83deb8f21172e = SHA1 of uncompressed .js https://desuarchive.org/g/thread/107536459/#107554394 -> https://web.archive.org/web/20250717091311/https://www.codetoolsbox.com/servidor-rtmp-hls-nginx-ubuntu-24-04/ -> [] Ir al contenido CodeToolsBox.com Herramientas Blog Acerca de Contacto Servidor RTMP HLS con Nginx en Ubuntu 24.04 LTS – Tutorial Paso a Paso Por c0p0r0 / 9 noviembre, 2024 Hoy en día existen cientos de servicios para transmitir videos sin restricción y con máxima calidad, como son Youtube, Kick, Twitch, Facebook, DailyMotion y un largo etc., pero si por algún motivo , necesitas montar tu propio servidor de transmisión de video, compatible con todos los dispositivos , debes usar HLS. Conoceremos el paso a paso para principiantes de como montar desde 0 un servidor RTMP con soporte para HLS en un servidor Ubuntu 24.04 LTSC con ayuda del módulo RTMP de Nginx. En este tutorial configuraremos el servidor para transmitir a través de tu software de streaming favorito como OBS, con protección del flujo de transmisión para que solo lo puedas usar en tu web o dominio, o si prefieres sin ningún tipo de restricción. Para instalar y configurar un servidor Nginx con RTMP en Ubuntu 24 y usarlo para transmitir flujos HLS desde OBS, sigue estos pasos: 1. Actualizar el Sistema Primero, asegúrate de que tu sistema esté actualizado: Copiar sudo apt update sudo apt upgrade -y 2. Instalar Dependencias Instala las dependencias necesarias para compilar Nginx con el módulo RTMP (Puedes copiar y pegar todo el codigo en la consola, que se ejecutara linea por linea): Copiar sudo apt install build-essential libpcre3 libpcre3-dev libssl-dev zlib1g zlib1g-dev git -y 3. Descargar y Compilar Nginx con el Módulo RTMP Descarga Nginx y el módulo RTMP, te recomendamos esas versiones y de ese repositorio (arut) que son las mas compatibles a la fecha de este turorial: Copiar mkdir ~/nginx cd ~/nginx wget http://nginx.org/download/nginx-1.24.0.tar.gz tar zxvf nginx-1.24.0.tar.gz git clone https://github.com/arut/nginx-rtmp-module.git Compila Nginx con el módulo RTMP: Copiar cd nginx-1.24.0 ./configure --with-http_ssl_module --add-module=../nginx-rtmp-module make sudo make install 4. Configurar Nginx para RTMP y HLS Edita el archivo de configuración de Nginx (usaremos el editor nano, o usa el de tu preferencia): Copiar sudo nano /usr/local/nginx/conf/nginx.conf Borra toda la configuración del archivo, Pulsa CTRL 6 para seleccionar y luego CTRL K para borrar. Si quieres configuración de nginx.conf sin restricción , que el flujo hls pueda ser reproducido en cualquier dominio , copia este código en nuestro editor html y reemplaza www.tudominio.com con tu nombre de dominio en los 4 campos, luego copia todo el codigo y pegalo en nginx.conf. Copiar worker_processes auto; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name www.tudominio.com; location / { root /usr/local/nginx/html; index index.html index.htm; } location /hls { types { application/vnd.apple.mpegurl m3u8; video/mp2t ts; } root /tmp; add_header Cache-Control no-cache; # Configuración CORS add_header 'Access-Control-Allow-Origin' '*' always; add_header 'Access-Control-Allow-Methods' 'GET, OPTIONS' always; add_header 'Access-Control-Allow-Headers' 'Origin, X-Requested-With, Content-Type, Accept' always; add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range' always; if ($request_method = 'OPTIONS') { add_header 'Access-Control-Allow-Origin' '*' always; add_header 'Access-Control-Allow-Methods' 'GET, OPTIONS' always; add_header 'Access-Control-Allow-Headers' 'Origin, X-Requested-With, Content-Type, Accept' always; add_header 'Access-Control-Max-Age' 1728000; add_header 'Content-Type' 'text/plain charset=UTF-8'; add_header 'Content-Length' 0; return 204; } } # Redirigir todo el tráfico HTTP a HTTPS return 301 https://$host$request_uri; } server { listen 443 ssl; server_name www.tudominio.com; ssl_certificate /etc/letsencrypt/live/www.tudominio.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/www.tudominio.com/privkey.pem; include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; location / { root /usr/local/nginx/html; index index.html index.htm; } location /hls { types { application/vnd.apple.mpegurl m3u8; video/mp2t ts; } root /tmp; add_header Cache-Control no-cache; # Configuración CORS add_header 'Access-Control-Allow-Origin' '*' always; add_header 'Access-Control-Allow-Methods' 'GET, OPTIONS' always; add_header 'Access-Control-Allow-Headers' 'Range'; add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range'; if ($request_method = 'OPTIONS') { add_header 'Access-Control-Allow-Origin' '*' always; add_header 'Access-Control-Allow-Methods' 'GET, OPTIONS' always; add_header 'Access-Control-Allow-Headers' 'Range'; add_header 'Access-Control-Max-Age' 1728000; add_header 'Content-Type' 'text/plain charset=UTF-8'; add_header 'Content-Length' 0; return 204; } } } } rtmp { server { listen 1935; chunk_size 4096; application live { live on; deny play all; hls on; hls_path /tmp/hls; hls_fragment 4; # 4 seconds fragments hls_playlist_length 60; # 60 seconds playlist } } } Guarda los cambios con CTRL X y luego Y Enter 5. Crear el Directorio HLS Crea el directorio donde se almacenarán los fragmentos HLS: Copiar sudo mkdir -p /tmp/hls sudo chown -R www-data:www-data /tmp/hls 6.Certificado SSL Instalaremos Cerbot para solicitar y generar el certificado SSL gratuitamente: Copiar sudo apt install certbot python3-certbot-nginx -y Matamos el servicio de Nginx para que quede libre el puerto 80 ,sino Certbot no podra generar el certificado: Copiar sudo pkill nginx En este punto la ip de tu servidor ya debe estar apuntando a tu dominio, sino, no se podra generar el certificado. Cambia www.midominio.com por el nombre de tu dominio Copiar sudo certbot --nginx -d www.midominio.com 7.Reglas del Firewall Abriremos estos puertos para que nuestro software de transmision pueda comunicarse con el servidor Copiar sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw allow 1935/tcp sudo ufw reload 8. Verificamos la configuracion: Si el archivo nginx.conf quedo bien configurado no nos arrojara ningun tipo de error. Si arroja algun error verificar los pasos anteriores nuevamente. Copiar sudo /usr/local/nginx/sbin/nginx -t 9. Matar e iniciar el servicio de Nginx: Con este paso hemos terminado de configurar nuestro servidor de nginx y esta listo para recibir conexiones desde el software de transmision Copiar sudo pkill nginx sudo /usr/local/nginx/sbin/nginx 10. Configurar el software de transmision En este punto asumimos que ya tienes tu software de transmision configurado con tus escenas, videos, audio,etc… para este tutorial usaremos OBS: servidor: rtmp://www.tudominio.com/live stream name: stream1 obs settings rtmp Puedes colocar en clave de retransmision o stream name la palabra que quieras. 11. HLS Stream La url del stream de transmisión ya está disponible desde el servidor para ser integrada en el reproductor hls de tu preferencia, sea en tu dominio o en una herramienta externa como la que tenemos nosotros llamada HLS Video Player Test. https://www.tudominio.com/hls/stream1.m3u8 12. Restringiendo el Stream HLS Si quieres que solo pueda ser reproducido y visto desde tu sitio web, modifica www.tudomino.com las 9 veces en el archivo nginx.conf con tu nombre de domino asi: Copiar worker_processes auto; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name www.tudominio.com; location / { root /usr/local/nginx/html; index index.html index.htm; } location /hls { types { application/vnd.apple.mpegurl m3u8; video/mp2t ts; } root /tmp; add_header Cache-Control no-cache; # Configuración CORS add_header 'Access-Control-Allow-Origin' 'https://www.tudominio.com' always; add_header 'Access-Control-Allow-Methods' 'GET, OPTIONS' always; add_header 'Access-Control-Allow-Headers' 'Origin, X-Requested-With, Content-Type, Accept' always; add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range' always; if ($request_method = 'OPTIONS') { add_header 'Access-Control-Allow-Origin' 'https://www.tudominio.com' always; add_header 'Access-Control-Allow-Methods' 'GET, OPTIONS' always; add_header 'Access-Control-Allow-Headers' 'Origin, X-Requested-With, Content-Type, Accept' always; add_header 'Access-Control-Max-Age' 1728000; add_header 'Content-Type' 'text/plain charset=UTF-8'; add_header 'Content-Length' 0; return 204; } } # Redirigir todo el tráfico HTTP a HTTPS return 301 https://$host$request_uri; } server { listen 443 ssl; server_name www.tudominio.com; ssl_certificate /etc/letsencrypt/live/www.tudominio.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/www.tudominio.com/privkey.pem; include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; location / { root /usr/local/nginx/html; index index.html index.htm; } location /hls { types { application/vnd.apple.mpegurl m3u8; video/mp2t ts; } root /tmp; add_header Cache-Control no-cache; # Configuración CORS add_header 'Access-Control-Allow-Origin' 'https://www.tudominio.com' always; add_header 'Access-Control-Allow-Methods' 'GET, OPTIONS' always; add_header 'Access-Control-Allow-Headers' 'Range'; add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range'; if ($request_method = 'OPTIONS') { add_header 'Access-Control-Allow-Origin' 'https://www.tudominio.com' always; add_header 'Access-Control-Allow-Methods' 'GET, OPTIONS' always; add_header 'Access-Control-Allow-Headers' 'Range'; add_header 'Access-Control-Max-Age' 1728000; add_header 'Content-Type' 'text/plain charset=UTF-8'; add_header 'Content-Length' 0; return 204; } # Verificación del referer set $valid_referer 0; if ($http_referer ~* (https?://(www\.)?dominio.com)) { set $valid_referer 1; } if ($valid_referer = 0) { return 403; # 403 Prohibir acceso si el referer no es válido o 404 para mostrar Not Found } } } } rtmp { server { listen 1935; chunk_size 4096; application live { live on; deny play all; hls on; hls_path /tmp/hls; hls_fragment 4; # 4 seconds fragments hls_playlist_length 60; # 60 seconds playlist } } } Con la anterior configuracion no se puede hacer directamente a la url del video .m3u8, si intentas acceder te arrojara el error 403, debes probar la url del video desde un player alojado en tu dominio. Si quieres poder acceder a la url directamente elimina estas lineas: # Verificación del referer set $valid_referer 0; if ($http_referer ~* (https?://(www\.)?dominio.com)) { set $valid_referer 1; } if ($valid_referer = 0) { return 403; # 403 Prohibir acceso si el referer no es válido o 404 para mostrar Not Found } Aplica los cambios matando y reiniciando el servicio: Copiar sudo pkill nginx sudo /usr/local/nginx/sbin/nginx Ya con esto tenemos nuestro servidor Nginx con plugin RTMP funcionando en un servidor Ubuntu 24.04 LTSC, ya depende de la capacidad de tu servidor para manejar el número de usuarios, que podrías ayudarte usando un reproductor de hls con p2p , con el cual los visitantes de tu streaming donarían parte de su ancho de banda para retransmitir a otros usuarios, más adelante actualizare este post y les dejare el tutorial. ¿Tuviste problemas? deja en la caja de comentarios e intentaremos ayudarte. Si te sirvió este tutoríal ayúdanos a crecer compartiéndolo en tus redes .☺️ ACTUALIZACION – AGREGAR USUARIO Y CONTRASEÑA PARA CONECTARSE AL SERVIDOR DESDE OBS Para agregar autenticación básica con usuario y contraseña para acceder al servidor y transmitir a través de OBS en tu configuración de NGINX, puedes usar las directivas auth_basic y auth_basic_user_file dentro de la aplicación live de RTMP. Aquí te dejo la configuración modificada, agregando la autenticación en la sección de rtmp: Crear un archivo de contraseñas: Si aún no lo tienes, puedes crear un archivo de contraseñas utilizando htpasswd. Si no tienes htpasswd instalado, puedes instalarlo con sudo apt-get install apache2-utils en sistemas basados en Debian/Ubuntu. Después, ejecuta el siguiente comando para crear el archivo de contraseñas: Copiar htpasswd -c /etc/nginx/.htpasswd nombre_usuario Esto te pedirá que introduzcas y confirmes una contraseña para el usuario. Si deseas agregar más usuarios, solo quita el -c y ejecuta el comando nuevamente para agregar usuarios. Modificar la configuración de NGINX: Luego, modifica la configuración de NGINX agregando la autenticación en la sección live de rtmp. rtmp { server { listen 1935; chunk_size 4096; application live { live on; deny play all; hls on; hls_path /tmp/hls; hls_fragment 4; # Fragmentos de 4 segundos hls_playlist_length 60; # Lista de reproducción de 60 segundos # Autenticación básica para OBS auth_basic "Restricted Access"; auth_basic_user_file /etc/nginx/.htpasswd; } } } Ahora, cuando te conectes desde OBS, deberás ingresar el nombre de usuario y la contraseña definidos en el archivo .htpasswd. No olvides reiniciar NGINX después de hacer estos cambios: Copiar sudo systemctl restart nginx Esto debería asegurar de que solo los usuarios autenticados puedan conectarse al servidor y transmitir a través de OBS. Si Te Sirvio Compartelo: Más Me gusta esto: Cargando... Relacionado Anonimizar enlaces sin Referrer: Generadore de Enlaces 10 noviembre, 2024 En «Herramientas para Desarrolladores» HLS Video Player Tester 13 noviembre, 2024 En «Herramientas para Desarrolladores» Ofuscar y Desofuscar Código HTML rapido y facil 4 noviembre, 2024 En «Herramientas para Desarrolladores» Anterior Editor de HTML Online: La Herramienta Perfecta para Probar tu Código Siguiente Anonimizar enlaces sin Referrer: Generadore de Enlaces Deja un comentario Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con * Escribe aquí... Escribe aquí... Nombre* Nombre* Correo electrónico* Correo electrónico* Web Web Recibir un correo electrónico con los siguientes comentarios a esta entrada. Recibir un correo electrónico con cada nueva entrada. Herramientas Blog Acerca de Contacto Derechos de autor © 2025 CodeToolsBox.com Scroll al inicio ES [] Unrelated: monthdir=4chan_gif_2025_10; utc; mktorrent -l 20 -a "udp://tracker.torrentclaw.com:1337/announce" -a "udp://obey.torrentonline.cc:42069/announce" -a "udp://thinking.duckdns.org:6969/announce" -a "udp://run.publictracker.xyz:6969/announce" -a "udp://run-2.publictracker.xyz:6969/announce" -a "https://tracker.manager.v6.navy:443/announce" -w "http://212.253.130.2/ipfs/bafybeibcscuzfqmgwgeewdjpqobnrngh4u2bzyh6uzm6khbvyzwef7msea" -n $monthdir.zip -o $monthdir.zip.torrent $monthdir.zip; utc = command used to created magnet:?xt=urn:btih:7c466bc2b822268e20d7f169b84f30498236b941&dn=4chan_gif_2025_10.zip&xl=50557092229&tr=udp%3A%2F%2Ftracker.torrentclaw.com%3A1337%2Fannounce&tr=udp%3A%2F%2Fobey.torrentonline.cc%3A42069%2Fannounce&tr=udp%3A%2F%2Fthinking.duckdns.org%3A6969%2Fannounce&tr=udp%3A%2F%2Frun.publictracker.xyz%3A6969%2Fannounce&tr=udp%3A%2F%2Frun-2.publictracker.xyz%3A6969%2Fannounce&tr=https%3A%2F%2Ftracker.manager.v6.navy%3A443%2Fannounce&ws=http://212.253.130.2/ipfs/bafybeibcscuzfqmgwgeewdjpqobnrngh4u2bzyh6uzm6khbvyzwef7msea ---- Important data sequence in the gameplay of "The Legend of Zelda: Tears of the Kingdom": 1010 010 01 0