He estado tratando de usar ffmpeg para transmitir mi webcam video a YouTube y hasta el momento todos los que he conseguido fue un «acuse de recibo» de YouTube diciendo: ‘Inicio’ en verde. Sin embargo, rápidamente se vuelve gris y el flujo real en realidad nunca cambia de línea.

Estoy usando este comando para intentar transmitir es:

ffmpeg -rtbufsize 1500M -r 25 -f dshow -s 1280x720 -i video="USB2.0 HD UVC WebCam" -vcodec h264 -b:a 600k -acodec libfaac -ab 128k -f flv "rtmp://a.rtmp.youtube.com/live2/user.useruser.codecodecode"

CMD

He conseguido transmitir vídeos a YouTube con ffmpeg, solo la cámara que no funciona. Alguna idea de lo que pueda estar haciendo mal?

Este es el comando que estoy usando ahora
ffmpeg -r 18 -f dshow -s 1280x720 -i video="USB2.0 HD UVC WebCam":audio="Microphone (Realtek High Definition Audio)" -vcodec h264 -b:v 1800k -acodec aac -strict experimental -f flv "rtmp://a.rtmp.youtube.com/live2/useruser.useruser.codecodecodecode"

Ahora estoy usando -acodec aac en lugar de libfaac o libfdk_aac ya que yo estaba «Desconocido encoder» errores

Es la transmisión de un par de segundos, sin embargo, ahora estoy recibiendo estos errores:
Escrito, RTMP error de envío 10053

Alguna idea de lo que estas significan, o cómo solucionarlo?

InformationsquelleAutor Indes | 2015-11-13

3 Comentarios

  1. 2

    Hay un par de cosas mal con el comando:

    • Usted no tiene un flujo de audio. Cuando se utiliza dshow también es necesario especificar audio como se explica aquí.

      ffmpeg -f dshow -i video="Integrated Camera":audio="Microphone name here"

      Si usted no tiene intención de capturar audio, a continuación, poner en silencio una pista de audio.

    • -b:a es la misma cosa como -ab – el bitrate de audio. Debe utilizar -b:v para especificar la velocidad de bits de vídeo. 600k es demasiado bajo para un 1280x720px @ 25fps H.264 secuencia de vídeo.

      YouTube recomienda:

      720p

      Bitrate De Vídeo Rango: De 1.500 A 4.000 Kbps

      Usted debe poner al menos 1800k.

    • Sobre el audio que está utilizando libfaac. Para obtener los mejores resultados cuando se codifica AAC es recomendado utilizar libfdk_aac

    • Gracias, eso me ayudó mucho, pero me estoy poniendo «RTMP error de envío 10053′ errores ahora a la derecha después de que se inicia la transmisión. Alguna idea de qué es esto? (He actualizado mi post con una captura de pantalla de lo que está pasando)
    • Estoy teniendo el problema…
    • Podría significar que la corriente se retrasa hasta que cayó. Veo una baja de fps en sus pantallas de disparos. Es de su equipo a la tarea?
    • Si usted no tiene intención de capturar audio, a continuación, poner en silencio una pista de audio –> ¿puede explicar por qué?
    • Cuando yo escribí esta respuesta el YouTube Live ingestión de punto de espera de un flujo de audio. Y segundo, si no hay flujo de audio, la reproducción puede fallar en los dispositivos de Apple cuando se utiliza HLS como ellos esperan que el mux de vídeo y audio (en las versiones anteriores del protocolo). Consulte stackoverflow.com/questions/33328829/…
    • Estoy teniendo el mismo problema acabo de subir un video a Youtube hecho con javacv. Youtube no proceso. ¿Qué códecs de audio y vídeo ¿usas para hacer el trabajo?

  2. 1

    La transmisión en vivo de una Cámara IP a Youtube usando FFmpeg. – Para los usuarios de Ubuntu (lo que hice)

    1. Instalar la versión más reciente de ffmpeg en ubuntu 12.04 o 14.04 https://gist.github.com/xdamman/e4f713c8cd1a389a5917 y

    2. Compilar FFmpeg en Ubuntu https://gist.github.com/faleev/3435377

    3. Abrir Youtube. De inicio de sesión. Haga clic en Mi Canal > Administrador de Video > la TRANSMISIÓN en VIVO . Nota de «Corriente nombre/clave» .

    4. Para la estática de archivo de vídeo:

      ffmpeg -re -i "(input-file)"  -acodec libmp3lame  -ar 44100 -b:a 128k -pix_fmt yuv420p -profile:v baseline -s 426x240 -bufsize 2048k -vb 400k -maxrate 800k -deinterlace -vcodec libx264 -preset medium -g 30 -r 30 -f flv "rtmp://a.rtmp.youtube.com/live2/(Stream name/key)"
      
    5. Para el streaming de vídeo de la cámara IP con rtsp sólo vídeo de salida:

      ffmpeg -re -i input-file  -rtsp_transport tcp -i "rtsp://[email protected](streamaddress with local IP)"  -acodec libmp3lame  -ar 44100 -b:a 128k -pix_fmt yuv420p -profile:v baseline -s 426x240 -bufsize 2048k -vb 400k -maxrate 800k -deinterlace -vcodec libx264 -preset medium -g 30 -r 30 -f flv "rtmp://a.rtmp.youtube.com/live2/(Stream name/key)"
      
    • En el punto 5, la salida de vídeo + audio. ¿Cómo transmitir vídeo (sin audio) de la cámara IP a youtube? he intentado utilizar -an opción, pero el vídeo no se muestra en youtube, aunque ffmpeg todavía se está ejecutando.
  3. 1

    Si usted tiene una cámara web con la dirección IP con full HD x264 fuente de video, sin audio y desea transmitir su directo de la pantalla de la cámara a YouTube, no es necesario para transcodificar/reencode de vídeo a una resolución más baja siempre. YouTube puede aceptar algunos de cámara directa de la secuencia de vídeo. La única cosa que usted debe hacer es añadir un extra de vacío/silencioso de la pista de audio. Si usted tiene suficiente ancho de banda en su red debe ser un trabajo.

    Estoy usando este comando de CLI en un Pine64+ con Ubuntu 16.04 y se está trabajando:

    ffmpeg -re -rtsp_transport tcp -i "rtsp://<user>:<pass>@<camera_ip>:<port>" /
           -f lavfi -i anullsrc=channel_layout=stereo:sample_rate=44100 /
           -c:a libmp3lame -ab 128k -ar 44100 /
           -c:v copy -threads 2 -bufsize 512k /
           -f flv "rtmp://a.rtmp.youtube.com/live2/<your-live-stream-key>"
    

    (Aquí hay algo de información sobre la Libavfilter de entrada de dispositivo virtual: https://www.ffmpeg.org/ffmpeg-devices.html#lavfi)

    Con esto, usted puede reenviar el directo de la pantalla de la cámara con audio en silencio a YouTube con un mínimo uso de la CPU.

    Algunas restricciones:

    1. Cuando la red no está disponible (por ejemplo, su ISP de actualización de la red, cambiar su dirección IP pública o el router se reinicia) el ffmpeg va a perder la señal (de la cámara web y/o YouTube RTSP).
    2. Como he visto que a veces YouTube deja de recibir corriente y convertir los datos en un archivo de vídeo (archivo de streaming de vídeo) y después de que crear un nuevo identificador para la transmisión en vivo. Esto afecta el funcionamiento de la ffmpeg (RTSP se ha perdido la conexión), y afecta a su página web donde se inserta el YouTube live stream código.
      (Como he encontrado en YouTube manejar un máximo de 12 horas de videos en una pieza única).

    En ambos casos ffpmeg no puede detectar la red o de las corrientes problema. Así que si quieres transmitir una secuencia interminable es difícil automatizar correctamente.

    • De alguna manera necesita detectar los errores de la red.
    • De alguna manera necesita detectar cuando YouTube deje de escuchar en RTSP.
    • De alguna manera necesita detectar si ffmpeg perdido la comunicación con la cámara.
    • Y, finalmente, de alguna manera, es necesario reiniciar ffmpeg cuando todo el servicio está funcionando de nuevo.

    Temporalmente estoy usando un pequeño cron job en el momento en que el reinicio de ffmpeg en todas las horas.

Dejar respuesta

Please enter your comment!
Please enter your name here