después de mucho buscar en Google y después de leer toneladas de foros, todavía no puedo hacer una transmisión en vivo usando mi cámara a otro dispositivo. Mi sistema está compuesto por un servidor (una laptop con Windows), que captura la escena y transmite el video adquirido, hasta ahora intenté usar ffmpeg, MP4Box y DashCast obviamente sin resultados, y por un cliente (algún dispositivo) que debería ser capaz de leer el flujo de video usando una página html5 simple equipada con dash.js.
Al principio, para entender cómo funciona el tablero, intenté transmitir un video "estático" y todo funcionó perfectamente gracias a este tutorial . Los problemas surgen cuando traté de transmitir video en vivo y seguí este tutorial , porque ffmpeg falló cuando intentaba crear un archivo .mpd, pero se puede dividir en dos subproblemas:
Cuando trato de manejar audio y video juntos, el sistema dice que el canal de audio no contiene ninguna transmisión. A continuación enumero el comando insertado:
ffmpeg -f dshow -i video="USB2.0 VGA UVC WebCam":audio="Microfono /
(Realtek High Definition Audio)" -map 0:0 -pix_fmt yuv420p /
-c:v libvpx -b:v 3000k -keyint_min 30 -g 30 -speed 6 /
-tile-columns 4 -frame-parallel 1 -threads 8 -static-thresh 0 /
-max-intra-rate 300 -deadline realtime -lag-in-frames 0 /
-error-resilient 1 -f webm_chunk -header live.hdr /
-chunk_start_index 1 live_%d.chk -map 0:1 -c:a libvorbis -b:a 128k /
-ar 44100 -f webm_chunk -audio_chunk_duration 2000 -header /
live_audio.hdr -chunk_start_index 1 live_audio_%d.chk
Las filas anteriores llaman al hardware de audio y video y guardan las secuencias multimedia en fragmentos.
ffmpeg -f webm_dash_manifest -live 1 -i live.hdr -f webm_dash_manifest /
-live 1 live_audio.hdr -c copy -map 0 -map 1 -f webm_dash_manifest /
-live 1 -adaptation_sets "id=0,streams=0 id=1,streams=1" /
-chunk_start_index 1 -chunk_duration_ms 2000 /
-time_shift_buffer_depth 7200 -minimum_update_period 7200 manifest.mpd
Este último comando no pudo adjuntar la transmisión de audio en el archivo .mpd y en la consola apareció "El archivo de salida #0 no contiene ninguna transmisión" como error.
Así que solo intento con video usando esencialmente las mismas opciones, pero cuando traté de crear el manifiesto, aparece un error de este tipo "No se pudo escribir el encabezado para el archivo de salida # 0 (¿parámetros de códec incorrectos?): Se encontraron datos no válidos al procesar la entrada". , así que tengo curiosidad por saber qué tipo de parámetros están mal.
En este punto, cambié completamente mi estrategia, así que creé una versión fragmentada de la transmisión en vivo e intenté usar MP4Box para crear un archivo .mpd, pero parece que MP4Box solo funciona con video de tiempo finito, o al menos no puedo. usarlo en vivo.
Y finalmente usé Dashcast y pude ver un marco de mi página de cliente, pero simplemente no funciona. El último comando que inserté es el siguiente:
DashCast -vf dshow -vfr 15 -v video="USB2.0 VGA UVC WebCam" /
-live -seg-dur 500 -frag-dur 100 -time-shift 10
En realidad jugué un poco con los parámetros, etc... pero el resultado sigue siendo el mismo, simplemente no puedo ver mi cara en el navegador. En este caso, el error es "¡Búfer en tiempo real lleno al 101 %! ¡Frame caído!" o "¡Búfer en tiempo real lleno al 80%! ¡Frame caído!".
Entonces, mi pregunta es ¿qué pasa con mis comandos FFmpeg?
¿Cómo puedo usar MP4Box para fines en vivo (con ejemplos porque no encuentro un solo ejemplo en toda la red)?
Y finalmente, ¿por qué DashCast es tan lento?
Obviamente, se aceptan todas las sugerencias sobre métodos alternativos para realizar una transmisión en vivo con alguna otra herramienta.
Estoy en una posición similar a la tuya y sospecho que parte del problema es que mi CPU no puede transcodificar la transmisión lo suficientemente rápido, especialmente cuando se ejecuta un reproductor en la misma máquina.
Verifique el uso de su CPU, si está al máximo, esa es probablemente la razón por la cual se cae el marco.
Aparentemente, mp4box se puede usar para transmitir DASH en vivo (tiene una opción -dash-live), pero tampoco he logrado que esto funcione. Este enlace es bastante antiguo, pero parece tener un ejemplo de trabajo:
http://www.slideshare.net/cconcolato/live-streaming-of-video-and-subtitles-with-mpegdash
Hans Meiser
Hans Meiser
Hans Meiser
usuario66350
caminante astronómico