int main(int argc,char *argv[])

02        {

03         AVFormatContext *pFormatCtx;

04         int i,videoStream;

05         AVCodecContext *pCodecCtx;

06         AVPacket packet;

07         //H264Context *h;

08         int type=0;

09         //Open video file

10         char rtsp[100]="";

11         char filename[150]="";

12         char *p=NULL;

13         char camid[6]="";

14         char log[100]="";

15         char new_file[200]="";

16         char command[200]="";

17         char file_jpg[200]="";

18

19         if(argc!=3)

20         {

21          exit(1);

22         }

23

24         strcpy(rtsp,argv[1]);

25         strcpy(filename,argv[2]);

26         p=strstr(filename,"cam");

27         memcpy(camid,p,5);

28

29         signal(SIGTERM,recv_signal);

30         signal(SIGUSR1,recv_signal);

31         signal(SIGHUP,recv_signal);

32         signal(SIGSEGV,recv_signal);

33         strcpy(File_Name,filename);

34

35         //Register all formats and codecs

36         av_register_all();

37         avformat_network_init();

38

39         if(av_open_input_file(&pFormatCtx,rtsp,NULL,0,NULL)!=0)

40         {

41          sprintf(log,"%s [%s] %s","The ",rtsp," stream open error\n");

42          write_log(camid,log);

43          exit(1);

44         }

45

46         //Retrieve stream information

47         if(av_find_stream_info(pFormatCtx)<0)

48         {

49          sprintf(log,"%s","Video Flow information check error\n");

50          write_log(camid,log);

51          return -1;

52         }

53

54         //Dump information about file onto standard error

55         av_dump_format(pFormatCtx,0,rtsp,0);

56

57         //Find the first video stream

58         videoStream=-1;

59         for(i=0;inb_streams;i++)

60         {

61          if(pFormatCtx->streams[i]->codec->codec_type==AVMEDIA_TYPE_VIDEO)

62          {

63           videoStream=i;

64           break;

65          }

66         }

67

68         if(videoStream==-1)

69         {

70          sprintf(log,"%s","Didn't find a video stram\n");

71          write_log(camid,log);

72          return -1;

73         }

74

75         pCodecCtx=pFormatCtx->streams[videoStream]->codec;

76         //open file

77         FILE *fp=NULL;

78         //char *filename="/home/MEDIA/project/linux/test.mp4";

79

80         if((fp=fopen(filename,"wb"))==NULL)

81         {

82          sprintf(log,"%s%s",filename," open failed\n");

83          write_log(camid,log);

84          exit(1);

85         }

86        /*这里打开了一个test.mp4的文件,下面怎么封装存储就不知道了,请各位大哥指导!帮助指点下封装成mp4文件的主要函数部分*/

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐