- 博客(7)
- 资源 (6)
- 收藏
- 关注
原创 从mpeg ts文件中提取I帧(7):程序的编译运行
一、工程目录├── img //保存的各种文件│ ├── 0112.bmp│ ├── 0112.pes│ ├── 0112.rgb│ ├── 0112.yuv├── makefile //编译脚本├── objs //编译过程的中间件文件│ ├── cvshow.d│ ├── cvshow.i│ ├── cvshow.o│ ├── ff...
2018-07-30 19:52:10 542 2
原创 从mpeg ts文件中提取I帧(6):I帧的显示
I帧的显示依赖于opencv,这里用到的版本是3.4.0。显示的数据是pes解码后的rgb数据,代码比较简单,用opencv主要考虑到以后可以对ts流进行一些特征识别。#include <opencv/cv.h>#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>...
2018-07-30 17:25:21 842
原创 从mpeg ts文件中提取I帧(5):I帧的解码
找到含有I帧的pes后就可以对其进行解码,对I帧的解码我们使用ffmpeg,这里用到的版本是3.0.0。一、pes解码为yuv,ffmpeg一般都是这个套路,直接上代码:int ffdecode_pes(uint8_t *pes_data, int32_t pes_size, ffbuffer_t *ffbuffer, char *out_file){ int ret = 0;...
2018-07-30 17:24:37 1629
原创 从mpeg ts文件中提取I帧(4):es包的解析
去掉了pes头剩下的数据就是es包,es就是一帧压缩了的视频或者音频。对应mpeg2的视频序列语法格式如下图:按照上图语法格式进行解析,有如下几点需要注意:一、pes对es的封装有2种形式1、一个pes包只包含一个es包。2、一个pes包包含多个es包,即一组视频帧序列。二、关于start_code1、每个起始码由一个起始码前缀加一个起始码值组成。2、起始码前缀的比特串为 "00...
2018-07-30 16:36:45 2101
原创 从mpeg ts文件中提取I帧(3):pes包的解析
本系列的第一篇文章讲解了如何把ts包拼装为pes包,本章主要讲解如何解析pes包。一、pes包的格式如下图所示:二、相关字段解析packet_start_code_prefix 标识包起始端的包起始码。固定值为 0000 0000 0000 0000 0000 0001 (0x000001)stream_id ...
2018-07-29 15:28:54 2251
原创 从mpeg ts文件中提取I帧(2):pat pmt解析
一、PAT用途1、描述当前传输流中 PMT 的 PID 信息。2、描述PMT,与SDT的对应关系。3、program_number=0时为network pid即nit的pid,接收pmt时注意跳过这nit。4、pat是整个ts流的入口,依据pat描述的pmt pid就可以搜索出所有的pmt信息。其语法结构如下图所示:PAT解析代码:int mpeg_psi_pat_pars...
2018-07-27 09:22:38 1446
原创 从mpeg ts文件中提取I帧(1):将ts包拼装为section或pes包
写在前面的话: 不觉中已经在数码工作了十年有余,十年的青春、十年的汗水,如今即将离开,个中滋味难以言表!以后可能不会在广电行业工作了,就用这个小程序,为自己十年的广电工作画上一个句号吧。依旧是:版权没有 盗版不纠 欢迎转载。本程序的功能:提取ts文件的视频I帧并显示输出,同时可以将I帧保存为yuv bmp格式的文件。基本思路:1、探测文件中ts包的长度 188?192?...
2018-07-26 18:46:57 2897 2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人