Giter Site home page Giter Site logo

video-to-facebook-live-js's Introduction

video-to-facebook-live-js

Un script simple para transmitir un archivo local hacia un facebook live.

  • Warning README desactualizado *

Crear un video en facebook live

Dirigirse a la herramienta de creacion de videos en vivo https://www.facebook.com/live/create

facebook-live-creator

En la pagina resultante podremos obtener una url de servidor y un identificador de nuestro nuevo video en vivo.

facebook-stream-video

Escribir el script para la transmisión

Para este caso usaremos node y ffmpeg para llevar adelante esta transmisioón.

Usaremos el modulo child_process para ejecutar ffmpeg en segundo plano.

const child_process = require('child_process');

Llamaremos a ffmpeg con una serie de parametros basados en la especificacion de facebook para los videos en vivo.

child_process.spawn('ffmpeg', [
    '-re',
    '-i', 'Sintel.mp4',
    '-f', 'flv',
    '-profile:v', 'baseline',
    '-pix_fmt', 'yuv420p',
    '-acodec', 'libmp3lame',
    '-ar', '44100',
    '-b:a', '128k',
    '-vcodec', 'libx264',
    '-bufsize', '6000k',
    '-vb', '400k', 
    '-maxrate', '1500k',
    '-preset', 'veryfast',
    '-s', '426x240',
    '-r', '30',
    '-g', '30',
    process.env.BASE_URL + process.env.STREAM_KEY
]);

En el ejemplo se usan variables de entorno para almacenar la url del servidor y la clave del stream

Formato de video:

  • Se aceptan videos con una resolución máxima de 720 píxeles (1.280 × 720) a 30 fotogramas por segundo, con un fotograma clave cada dos segundos.
  • Se debe enviar al menos un frame (fotograma clave) cada dos segundos durante la transmisión.
  • La tasa de bits máxima recomendada es de 4 Mbps. Aunque es posible traspasar este límite, eso haría que las transmisiones en vivo fueran muy inestables.
  • Si se cambia la resolución en mitad de la transmisión, esta última se puede perjudicar.
  • Los títulos deben tener menos de 255 caracteres. De lo contrario, se producirá un error en la transmisión.
  • La Live API solo admite video codificado H264 y audio codificado AAC.

Duración del video:

  • Duración máxima de cuatro horas para las transmisiones en vivo.
  • Duración máxima de cuatro horas para las transmisiones de vista previa (tanto en el cuadro de diálogo de transmisión en vivo como en las herramientas de editor). Después de 240 minutos, se deberá generar una nueva clave de transmisión.
  • Las URL de transmisión RTMP caducarán 24 horas después de su creación.

Configuración de audio avanzada:

  • Frecuencia de muestreo de audio: 48 kHz
  • Velocidad de bits de audio: 128 Kbps mono
  • Códec de audio: AAC

Configuración de video avanzada:

  • Relación de aspecto del píxel: cuadrado
  • Tipos de fotogramas: escaneo progresivo
  • Velocidad de bits de codificación: CBR
  • Códec de video: H264

Para probar que todo funcione correctamente ejcutemos el archivo script.js de forma local y podremos ver una vista previa en la pantalla de creacion de video vivo.

node script.js

facebook-stream-video

video-to-facebook-live-js's People

Contributors

joelibaceta avatar

Watchers

James Cloos avatar Geraldine avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.