problemas ffmpeg + ffserver
hola,
estoy intentando montar para unas jornadas que va a haber en mi
universidad un servidor videostreaming con ffmpeg y ffserver. Es la
primera vez que lo intento y me he encontrado con un error un tanto raro
y no se donde mirar.
Mi intención es tener una máquina para codificar (usando ffmpeg) y otra
para servir el streaming (gracias a ffserver). Pero me estoy encontrado
muchos errores para conseguir enviar el flujo de ffmpeg a ffserver. Por
ahora ando haciendo pruebas con un fichero.
1. Arranco el servidor ffserver.
$ ffserver -f /tmp/ffserver.conf
2. Que tiene la siguiente configuración.
Port 8090
BindAddress 0.0.0.0
MaxClients 1000
MaxBandwidth 1000
CustomLog -
NoDaemon
<Feed feed1.asf>
File /tmp/feed1.asf
FileMaxSize 5M
</Feed>
# Server status
<Stream stat.html>
Format status
</Stream>
# Redirect index.html to the appropriate site
<Redirect index.html>
URL http://www.ffmpeg.org/
</Redirect>
3. Posteriormente arranco el ffmpeg.
$ ffmpeg -i myfile.avi -f asf -vcodec mpeg4 -b 128 -acodec ac3 -ab 32
http://localhost:8090/feed1.asf
La cuestión es que no tira nada. Probando al abrir con el mplayer la URL
http://localhost:8090/test1.asf obtengo un error, ya que no me consigue
cachear nada 0.0% de cache.
Lo que parece que pasa es que el ffmpeg pierde la conexion con el
ffserver y no manda más datos al servidor de streaming. He metido el
tcpdump y se ve como al de poco de arrancar el ffmpeg el servidor
(ffserver) manda un RST de TCP y cierra la conexion con ffmpeg. En
consecuencia el servidor no tiene datos de ese flujo.
10:08:23.968625 IP localhost.59942 > localhost.8090: S 51315889:51315889(0) win 32792 <mss 16396,sackOK,timestamp 671282 0,nop,wscale 7>
10:08:23.968856 IP localhost.8090 > localhost.59942: S 61776767:61776767(0) ack 51315890 win 32768 <mss 16396,sackOK,timestamp 671282 671282,nop,wscale 7>
10:08:23.968879 IP localhost.59942 > localhost.8090: . ack 1 win 257 <nop,nop,timestamp 671282 671282>
10:08:23.968890 IP localhost.59942 > localhost.8090: P 1:115(114) ack 1 win 257 <nop,nop,timestamp 671282 671282>
10:08:23.968902 IP localhost.8090 > localhost.59942: . ack 115 win 256 <nop,nop,timestamp 671282 671282>
10:08:23.968786 IP localhost.8090 > localhost.59942: P 1:119(118) ack 115 win 256 <nop,nop,timestamp 671282 671282>
10:08:23.968800 IP localhost.59942 > localhost.8090: . ack 119 win 257 <nop,nop,timestamp 671282 671282>
10:08:23.968950 IP localhost.8090 > localhost.59942: F 119:119(0) ack 115 win 256 <nop,nop,timestamp 671282 671282>
10:08:24.007526 IP localhost.59942 > localhost.8090: . ack 120 win 257 <nop,nop,timestamp 671292 671282>
10:08:24.976362 IP localhost.59942 > localhost.8090: P 115:704(589) ack 120 win 257 <nop,nop,timestamp 671534 671282>
10:08:24.976395 IP localhost.8090 > localhost.59942: R 61776887:61776887(0) win 0
Agradecería cualquier comentario de usuarios de ffmpeg. Igual es tan
sencillo como alguna opción de configuración del ffserver. Pero la
verdad que estoy perdido.
Un saludo y gracias,
--
Christian Pinedo Zamalloa
Reply to: