Hi Luca, Thank you very much for the info!! I will try to find more info. The hard point of developping with ffmpeg is finding documentation/tutorials, but I'm sure is a really powerful API for encoding/decoding multimedia. VLC is based on it and I love it. With vlc, if I select open network and I insert http://MY_CAMERA_IP/cgi-bin/nph-video?type=multipart/x-mixed-replace, I am able to watch it, transcode it, save it with the container and video codec I select. So It is possible to do it...
Thanks again. ---------------------------------------- > Date: Fri, 31 Oct 2008 08:23:37 +0100 > From: [EMAIL PROTECTED] > To: [email protected] > Subject: Re: [libav-user] ENCODING IP CAMERA STREAM > > Hi Javier, > > Javier Rojo wrote: >> Hi all, >> >> I am working with an IP Camera (Lumenera Le 165m, >> http://www.lumenera.com/security/le165.php). With the command >> http://MY_CAMERA_IP/cgi-bin/nph-video?type=multipart/x-mixed-replace the >> camera starts sending jpeg files. Well, my goal is to develop in C/C++ and >> application to record that streaming, in mpg, for example. >> >> Up to now, I have used curl to retrieve JPGs from network, ImageMagick to >> load JPG from memory and to obtain RAW data in PIX_FMT_GRAY8 format, then >> img_convert to change from PIX_FMT_GRAY8 to PIX_FMT_YUVJ420P, and finally I >> have encoded the stream with avcodec_encode_video (CODEC_ID_MPEG1VIDEO) > > I think you can use libavformat instead of curl to fetch the jpeg files, > and libavcodec to decode them. Also, note that img_convert() has been > deprecated, and you should use sws_* instead (see ffmpeg.c or > libswscale/swscale-example.c for an usage example). > > I _suspect_ you can also use the "ffmpeg" program directly to fetch the > images and convert them to an mpeg file, but I have no idea about the > correct command line. > > >> But the speed of the video is altered cause I am using m_c->time_base= >> (AVRational){1,25}; but the FPS of the IP camera are not constant and >> sometimes are 15 (encoded video is faster than reality) or 50 (encoded video >> is slower than reality), depending on the image size, network overload and >> so on... > > If the frame rate is not constant and you want to encode at variable > frame rate, time_base = 1/25 is a bad choice. > (however, you should use a codec and file format that support variable > frame rate - I do not know if mpeg is OK) > You can probably set it to 1/1000, and pass timestamps in ms. > The real problem is that you must be able to associate a PTS to your > input frames, and if the camera is not providing a timestamps for the > frames you are in a bad shape. > > The alternative is to duplicate/drop frames to achieve constant frame > rate for the encoded video (see the "vsynch" in ffmpeg.c). > > >> My questions are: >> - how should I do it to encode that stream in a more easy/fast way? > > See above > > >> - Is there any example to have a look about encoding http stream? > > I do not know about any... You can try to have a look at ffmpeg.c. > > >> - Is there any documentation about ffmpeg (avformat, avutil, avcodec...) > > There is the doxygen documentation in avformat.h, avcodec.h, and avutil.h. > This is not very practical (it requires some previous knowledge in the reader, > and is far from a tutorial), but it's the most reliable source of information. > You can also search this mailing list archives, and you'll find useful > suggestions > and references to some tutorials. > > > Luca > _______________________________________________ > libav-user mailing list > [email protected] > https://lists.mplayerhq.hu/mailman/listinfo/libav-user _________________________________________________________________ ¿Eres un cotilla? Disfruta de todas las novedades en MSN Corazón http://entretenimiento.es.msn.com/corazon/ _______________________________________________ libav-user mailing list [email protected] https://lists.mplayerhq.hu/mailman/listinfo/libav-user
