Firefly开源社区

[应用开发] firefly_rkmedia_demo下的ffrtsp_demo_test运行问题

6

积分

0

威望

0

贡献

吃瓜的群众

积分
6
发表于 2022-4-6 10:39:40     
运行firefly_rkmedia_demo下的例程ffrtsp_demo_test
  1. #ffrtsp_demo_test rtsp://admin:admin@192.168.1.88:554/11
  2. rtsp://192.168.1.100:8554/H264_stream_0
复制代码
然后使用VLC打开:rtsp://192.168.1.100:8554/H264_stream_0
VLC提示打开失败。


备注:
1.摄像头、电脑、RV1126开发板在同一个局域网,互相ping是通的;
2.电脑使用VLC打开摄像头rtsp://admin:admin@192.168.1.88:554/11,播放正常;


执行时,屏幕没有打印字符串“FFRTSP_Send start”,估计ffrtsp_get的回调函数FFRTSP_Send()没有执行。
demo代码如下:
  1. #include <pthread.h>
  2. #include <getopt.h>
  3. #include <math.h>
  4. #include <signal.h>
  5. #include <stdbool.h>
  6. #include <stdio.h>
  7. #include <stdlib.h>
  8. #include <string.h>
  9. #include <unistd.h>

  10. #include "ffrtsp/ffrtsp.hh"

  11. #define RTSP_PORT 8554

  12. //#define SAVE_FILE

  13. struct RTSP_PUSH_INFO ffrtsp_push[MAXFFRTSPChn];

  14. int FFRTSP_Send(u_int8_t* framebuff,unsigned framesize,bool * quit,int cur_chn)
  15. {
  16.         printf("FFRTSP_Send start\n");
  17.        
  18.     if (ffrtsp_push[cur_chn].fp == NULL)
  19.             return -1;
  20. #ifdef SAVE_FILE
  21.     char save_file_path[30] = "test_rtsp_";
  22.     char str[10] = {0};
  23.     sprintf(str, "%d", cur_chn);
  24.     strcat(save_file_path,str);
  25.     FILE *fp = fopen(save_file_path, "a+b");
  26.     fwrite(framebuff, framesize, 1, fp);
  27.     fclose(fp);
  28.     fp = NULL;
  29. #else
  30.     fwrite(framebuff,framesize, 1, ffrtsp_push[cur_chn].fp);
  31. #endif
  32. }

  33. static void *rtspgetbuff(void *data) {
  34.     ffrtspGet(*(struct FFRTSPGet *)data);
  35. }

  36. static void *rtsppushbuff(void *data) {
  37.     ffrtsph264Push((struct RTSP_PUSH_INFO *)data); //h265 需要用 ffrtsph265Push
  38. }

  39. int main(int argc, char **argv){
  40.   
  41.   struct FFRTSPGet ffrtsp_get;
  42.   ffrtsp_get.count = argc - 1;
  43.   ffrtsp_get.callback = FFRTSP_Send;
  44.   pthread_t rtsppush_thread[MAXFFRTSPChn];
  45.   int i = 0;
  46.   for(i = 0; i < argc - 1; i++) {
  47.           ffrtsp_get.ffrtsp_get_info[i].url = argv[i + 1];
  48.         ffrtsp_push[i].idex = i;
  49.         ffrtsp_push[i].port = RTSP_PORT + i;
  50.         pthread_create(&rtsppush_thread[i], NULL, rtsppushbuff, (void *)&ffrtsp_push[i]);
  51.   }


  52.   pthread_t rtspget_thread;
  53.   pthread_create(&rtspget_thread, NULL, rtspgetbuff, (void *)&ffrtsp_get);

  54.     while (1) {
  55.           usleep(3000 * 1000);
  56.   }

  57.   return 0;
  58. }
复制代码



回复

使用道具 举报

21

积分

0

威望

0

贡献

技术小白

积分
21
发表于 2022-7-1 15:52:59     
我也一样的问题,请问你解决了吗?
回复

使用道具 举报

16

积分

0

威望

0

贡献

技术小白

积分
16
发表于 2023-5-22 16:44:33     
正准备搞这个,学习学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表