A few days ago I decided to install my Microsoft Office 2007 under linux. I wanted to avoid starting the Windows Virtual Machine. All was damn easy and worked like a charm BUT powerpoint. It is not like I do create lots of presentations in powerpoint (I doubt I do one a year) but I do receive a lot of presentations that show crappy on libreoffice.
After googling a while I found in the winehq forums a user who posted that adding to wineconfig the riched20.dll library did the trick. Indeed it did and I post it here hoping that you find it faster than me =)
After some time we have managed to get rtmp listen into libav master. It has been harder than getting the last rtsp patch I announced in this same blog mainly because I didn’t have any experience with rtmp. I have to thank Martin and Luca who had a lot of patience with me and in general to all the people within libav.
Now libav supports receiving a stream with the rtmp publish command, no authentication, no encryption, no… but at least it is a first step.
Now anyone can use the -rtmp_listen 1 argument to receive a stream and -timeout x to set an initial timeout to wait for incoming connections. How can we then receive an rtmp stream on our machine?
avconv -rtmp_listen 1 -f flv -timeout 10 rtmp://localhost/app/test outfile
on the other side to send the stream is as easy as:
avconv -i inputfile -f flv rtmp://localhost/app/test
Isn’t that nice? And what if I want to just play my favorite movie on the laptop connected to my tv without using those slow pendrives?
“avplay -f flv -rtmp_listen 1 rtmp://my_ip/app/test” on the laptop and “avconv -i inputfile -f flv -c copy rtmp://my_ip/app/test” in your desktop.
Now using raw tcp, rtsp or rtmp to receive your streams is only a matter of choice.
Oh, didn’t I say it? now you can use tcp://address:port/path?listen with your avconv to receive raw tcp streams. (Don’t forget to set the output format with -f in the sender side)
recv: avconv -i tcp://ip:port/path?listen outfile
send: avconv -i inputfile -f format tcp://ip:port/path
I think that is all by now. Next improvement… Multiple connections!
Finally we did it, the RTSP announce/record scenario I announced some months ago has been accepted into libav. This means that anyone will be able to receive rtsp streams on demand with avconv or avplay. With this enhancement with others which will hopefully be merged into libav soon, we will be able to implement avserv using URLContext and limiting the network functionalities to the demuxer developed into libavformat. The other enhancements are: modification to the libavformat TCP demuxer to allow multiple accepts to one socket (like servers do) and a rtsp listen like functionality to rtmp, which is waiting for review.
We added the “-rtsp_flag listen” option which allows both avconv and avplay to wait for an incoming RTSP connection which will send a stream after a RECORD command and receive the stream over UDP or TCP. What is this useful to? Imagine that you want to publish a real time stream with a client that only supports rtsp but your server only supports rtmp, what can we do?
avconv -f rtsp -rtsp_flags listen -i rtsp://myhost/stream.sdp rtmp://myhost/app/stream
or you can just store it to a file
avconv -f rtsp -rtsp_flags listen -i rtsp://myhost/stream.sdp file.mp4/ogv/mpg/…
In addition you will be able to do the usual with avconv as for instance convert to any of the infinite available codecs.
I don’t know if it is really useful but isn’t it cool?
Today I have received my welcome package. It is nicer than last year one.
This summer I will be again happily involved with the Google Summer of Code inside the LibAV project. This year I have been accepted to accomplish one of the proposed tasks of the project: Rewrite avserver.
On the last three weeks I have been implementing the RTSP ANNOUNCE/RECORD. With this enhancement, the avconv can listen to an ANNOUNCE REQUEST which followed by SETUP and RECORD will allow to receive a stream and then handle the new incoming data.
The implementation is by today at my github https://github.com/nenjordi/libav/commits/rtsp-announce-preparepatch for those of you who want to take a look at its current status.
Un año más se convoca, a todos los estudiantes que lo deseen, a participar en proyectos de codigo libre con remuneración por parte de google y tutoría por parte de expertos en la materia. Animaos, hay proyectos para todos. Para los estudiantes el plazo comenzará el 26 de Marzo.
On the recent versions of ffplay they switched the parameter -s WxH to -video_size WxH.
Hope this is helpful.
This picture is provided with Creative Commons License. Feel free to use it if you need it
SVC Structure by Jordi Ortiz is licensed under a Creative Commons Reconocimiento-CompartirIgual 3.0 Unported License.
Creado a partir de la obra en www.jordiortiz.es.
Los días 18 y 19 de noviembre participé en el congreso CTVDI organizado por el LTIM de la Universidad de las Islas Baleares. A continuación pongo la entrevista y la ponencia. Entre los asistentes había muchos estudiantes de ahí que me decidiese a darle un toque distendido a la presentación
Aquí podréis visitar el resto de ponencias. Muy recomendables todas. Enlace a vídeos del LTIM
Espero que os gusten.