在DM8168中通过live555实现rtsp的直播(部分修改)

1、源码
 


 

2、实现交叉编译
  第一步: 
(针对不同的平台,config的后缀不同,armlinux是针对linux的arm而言的。若是在linux操作系统下,则不需要再编译confid.arnlinux,也不用修改CROSS_COMPILE编译器)   
    vim config.armlinux(先sudo chmod 777 config.armlinux 改变读写权限,再修改)
 
 
   修改: CROSS_COMPILE?=         arm-none-linux-gnueabi-   (在此处带上编译器的绝对路径比较好)
  (这里修改CROSS_COMPILE的原因是,只有使用上面的交叉编译器,才能生成arm能够识别的可执行文件。若在linux系统下使用,则不需要修改)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 第二步:  
 ./genMakefiles armlinux   (如果显示can not open genMakefiles,加sudo ,如果还是不行的话,就切换到root用户)
    (若在linux系统下使用,则运行./genMakefiles linux  
 
    make  (如果显示错误Media.o 不能创建,则用sudo make)
 
 
  第三步: 

  然后,下载test.264的文件到MediaServer目录下,执行 ./live555MediaServer。在PC端打开VLC,选择打开网络串流文件,

  输入显示的URL,如rtsp://192.168.1.109/test.264, 就可以看到视频啦。

 (若想从live555MediaServer运行中退出来,可以先ps一下,查看当前进程的PID,然后执行kill -s 9 PID号,这就就可以彻底的关闭这个进程,而不用关闭这个终端)

 

 第四步: 

 若要从linux系统换到其他的系统,在live目录下使用make clean 一下。

 

 


注:以下内容可以忽略

 
    挂载:
    busybox mount -t nfs -o nolock 172.16.0.73:/xubinbin/live555/live /mnt



 

3、利用有名管道来实现数据的传输


 

    在live555中的testProgs/testH264VideoStreamer.cpp默认文件问test.264, 修改为/tmp/test.264



 

    在视频采集进程中添加:
  1. int rtsp_fd;
  2. char rtsp_filename[128];

  3. int socket_server_init()
  4. {

  5.     memcpy(rtsp_filename,"/tmp/test.264",sizeof(rtsp_filename));

  6.     unlink(rtsp_filename);
  7.    
  8.     if (access(rtsp_filename, F_OK) != 0) {
  9.         if (mkfifo(rtsp_filename, 0666) < 0) {
  10.             OSA_printf("Failed to mkfifo %s\n", rtsp_filename);
  11.             return FALSE;
  12.         }
  13.     }

  14.     if (system("/home/testH264VideoStreamer &") != 0) {
  15.         OSA_printf("Failed to execute system command");
  16.         return FALSE;
  17.     }
  18.    
  19.     rtsp_fd = open(rtsp_filename, O_WRONLY);
  20.     if (rtsp_fd <= 0) {
  21.         OSA_printf("Failed to open file %s\n", rtsp_filename);
  22.     }
  23.     else {
  24.         OSA_printf("Open file %s for server\n", rtsp_filename);
  25.     }

  26.     return 0;
  27. }

  28. write(rtsp_fd,pFullBuf->bufVirtAddr,pFullBuf->filledBufSize);

  29. int socket_server_init()
  30. {
  31.     //删除文件,资源释放,数据清空
  32. }
复制代码

(笔记分享   技术交流 xubbwd@foxmail.com

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值