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;i<pFormatCtx->nb_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文件的主要函数部分*/

使用ffmpeg获取视频流后如何封装存储成mp4文件的更多相关文章

  1. ffmpeg学习(二) 通过rtsp获取H264裸流并保存到mp4文件

    本篇将使用上节http://www.cnblogs.com/wenjingu/p/3977015.html中编译好的库文件通过rtsp获取网络上的h264裸流并保存到mp4文件中. 1.VS2010建 ...

  2. jmeter使用问题——将接口返回变量存储成csv文件

    在使用jmeter做接口测试时,一整个jmx测试计划中,存在多个线程,多个接口的测试 但是接口可以分类,比如业务接口.查询接口.更新接口等 考虑自动化接口测试一般都是一次性的,有完整的闭环链路,一般步 ...

  3. 【转】Python爬取AES加密的m3u8视频流的小电影并转换成mp4

    最近发现一个视频网站,准备去爬取得时候,前面很顺利利用fiddler抓包获取网站的post数据loads为python字典数据,分析数据就能发现每个视频的连接地址就在其中, 发现这些都是m3u8文件流 ...

  4. Ffmpeg 获取USB Camera 视频流

    本文讲述的案例是如何通过Ffmpeg实现从USB Camera中获取视频流并将视频流保存到MP4文件. 本文亦适用于从USB Camera 获取视频流并将视频流转发到rtmp服务的案例,二者基本的原理 ...

  5. FFmpeg获取DirectShow设备数据(摄像头,录屏)

    这两天研究了FFmpeg获取DirectShow设备数据的方法,在此简单记录一下以作备忘.本文所述的方法主要是对应Windows平台的. 1.       列设备 ffmpeg -list_devic ...

  6. 【转】FFmpeg获取DirectShow设备数据(摄像头,录屏)

    这两天研究了FFmpeg获取DirectShow设备数据的方法,在此简单记录一下以作备忘.本文所述的方法主要是对应Windows平台的. 1.       列设备 ffmpeg -list_devic ...

  7. H264编码 封装成MP4格式 视频流 RTP封包

    H264编码 封装成MP4格式 视频流 RTP封包         分类:             多媒体编程              2013-02-20 21:31     3067人阅读    ...

  8. ffmpeg 从视频流中抓取图片

    从视频中不断抓取图片的基本流程:打开视频流地址->获取视频流packt->解码成图片帧->输出图片 一.初始化Ffmpeg void ffmpegInit(){ av_registe ...

  9. 基于jsmpeg库下使用ffmpeg创建视频流连接websocket中继器传输视频并播放

    这个功能的基本工作是这样的: 1.使用node运行jsmpeg库下的websocket-relay.js文件,这个文件的作用是创建一个websocket视频传输中继器 2.运行ffmpeg,将输出发送 ...

随机推荐

  1. [转]Microsoft Office 2010、Visio 2010、Project 2010官方中文版+有效激活方法

    本文刊发的Office 2010.Project 2010O.Visio 2010:(1)均为“微软批量授权中心”原版光盘镜像:(2)均提供了32位(x86)和64位(x64)两种版本.为使大家了解各 ...

  2. add printer driver error 1802修复说明

    1.重启电脑后 ,将服务"Print Spooler"服务重新启动2.srclient.dll文件拷贝到c盘 windows/system32目录下3.连接好打印机USB接口,重装 ...

  3. 音频特征提取——pyAudioAnalysis工具包

    作者:桂. 时间:2017-05-04  18:31:09 链接:http://www.cnblogs.com/xingshansi/p/6806637.html 前言 语音识别等应用离不开音频特征的 ...

  4. svnserve配置文件详析

    svnserve是SVN自带的一个轻型服务器,客户端通过使用以svn://或svn+ssh://为前缀的URL来访问svnserve服务 器,实现远程访问SVN版本库. svnserve可以通过配置文 ...

  5. 最简短的openvpn的设置方式

    这种方式对于测试能否连接到远程系统,十分的有用.尤其是国内复杂的网络环境下,检测一下,到底是服务器的原因,还是网络因素造成的,这是一个快捷的方式. 需要注意的是:这种方法是用明文连接.所有的加密措施都 ...

  6. 【Android】3.7 UI控制功能

    分类:C#.Android.VS2015.百度地图应用: 创建日期:2016-02-04 一.简介 简介:介绍开关手势功能和显示隐藏UI控件 详述: (1)地图操作开关:平移.缩放.双击放大.双指操作 ...

  7. 转:python常用运维脚本实例

    python常用运维脚本实例 转载  file是一个类,使用file('file_name', 'r+')这种方式打开文件,返回一个file对象,以写模式打开文件不存在则会被创建.但是更推荐使用内置函 ...

  8. gitlab yum 源

    https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/

  9. 字符编码:ASCII,Unicode,UTF-8

    1.ASCII码美国制定的一套字符编码,对英语字符和二进制位之间的关系,做了统一规定.ASCII码一共规定了128个字符(包括32个不能打印出来的控制符号)的编码,占用一个字节,字节的最前面1位统一为 ...

  10. dp之二维背包poj1837(天平问题 推荐)

    题意:给你c(2<=c<=20)个挂钩,g(2<=g<=20)个砝码,求在将所有砝码(砝码重1~~25)挂到天平(天平长  -15~~15)上,并使得天平平衡的方法数..... ...