zoukankan      html  css  js  c++  java
  • 一个基于JRTPLIB的轻量级RTSP客户端(myRTSPClient)——解码篇:(三)一个简单的rtsp播放器

    该篇内容简单的将前两篇内容组合在一起,创建了2个线程,分别播放音频和视频。

     1 int main(int argc, char * argv[])
     2 {
     3     RtspClient Client;
     4     pthread_t audio_th;
     5     pthread_t video_th;
     6 
     7     if(argc != 2) {
     8         cout << "Usage: " << argv[0] << " <URL>" << endl;
     9         cout << "For example: " << endl;
    10         cout << argv[0] << " rtsp://127.0.0.1/ansersion" << endl;
    11         return 1;
    12     }   
    13     signal(SIGINT , sigterm_handler); /* Interrupt (ANSI).    */
    14     signal(SIGTERM, sigterm_handler); /* Termination (ANSI).  */
    15     rtspClientRequest(&Client, argv[1]);
    16     av_register_all();
    17     if(SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_TIMER)) {
    18         fprintf(stderr, "Could not initialize SDL - %s
    ", SDL_GetError());
    19         Client.DoTEARDOWN();
    20         exit(1);
    21     }   
    22     pthread_create(&audio_th, NULL, audio_thread, (void *)&Client);
    23     pthread_create(&video_th, NULL, video_thread, (void *)&Client);
    24 
    25     pthread_join(audio_th, NULL);
    26     pthread_join(video_th, NULL);
    27     Client.DoTEARDOWN();
    28 
    29     return 0;
    30 }

    至此,“解码篇”内容告一段落,接下来将介绍myRTSPClient的具体实现,以便可以更好的理解音视频的传输机制。

    注:

    1, 示例源码编译需要SDL和ffmpeg,具体可参见解码视频的附录二;

    2, 博主编译环境为 x86_64位ubuntu 16.04,以供参考。

    myRtspClient-1.2.3

    ffmpeg-2.8.5

    下载源码以及Makefile

    编译、配置和运行同上一篇:用ffmpeg解码视频

    上一篇                    回目录

  • 相关阅读:
    第六周
    第五周(实验报告)
    第四周(实验报告)
    第三周(实验报告)
    Java第二周学习总结
    第一周
    2019课程总结
    第十四周课程总结
    第十三周总结
    第十二周总结
  • 原文地址:https://www.cnblogs.com/ansersion/p/7004510.html
Copyright © 2011-2022 走看看