[Libav-user] How to implement RTSP server by libffmpeg?

Psychesnet Hsieh psychesnet at gmail.com
Thu Jul 10 11:33:37 CEST 2014


Hello everyone,

In the beginning, we use libortp to implement  our rtsp server.
Unfortunately, libortp costs too much cpu resource when we send rtp packet.
So, I'm planing to porting our code to new library, libffmpeg.

RTSP server would be included rtsp, rtp and rtcp protocols.
Rtsp protocol has been done in our server and we don't need the rtcp
protocol.
Last rtp, I initial rtp protocol by rtp container like below.

                ff.oc = avformat_alloc_context();

                ff.fmt = av_guess_format("rtp", NULL, NULL);

                ff.oc->oformat = ff.fmt;

                video_st = av_new_stream(ff->oc, VIDEO_INDEX);

                oVcc = video_st->codec;

                oVcc->codec_id = CODEC_ID_H264;

                oVcc->codec_type = CODEC_TYPE_VIDEO;

                oVcc->bit_rate = 2048 * 1024;

                oVcc->width = 640;

                oVcc->height = 480;

                oVcc->time_base.den = 30;

                oVcc->time_base.num = 1;

                oVcc->gop_size = 30;

                oVcc->pix_fmt = PIX_FMT_YUV420P;

                oVcc->max_b_frames = 0;

                oVcc->priv_data = 0;
Then, I send rtp out.

    AVPacket sePacket;

    av_init_packet(&sePacket);


    sePacket.flags |= PKT_FLAG_KEY;

    sePacket.stream_index = VIDEO_INDEX;

    sePacket.data = pSrc;

    sePacket.size = left;

    sePacket.pts = 0;

    av_write_frame(ff->oc, &sePacket);

    av_free_packet(&sePacket);
Actually, VLC can receive the rtp data I send.
But VLC can not decode it.

My question is:
1. the pSrc is totally H264 data, should I do something before calling
av_write_frame???
2. Who has the sample code or any suggestion, please help me out??

Thanks a lot.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://ffmpeg.org/pipermail/libav-user/attachments/20140710/75f95067/attachment.html>


More information about the Libav-user mailing list