缘起:使用GB28181对接下级平台/NVR等时,做录像回放想将录像流的时间轴精确到秒,就是实现类似下面的效果:

然而ps流中PES包携带的PTS/DTS无法转换成 【2020-06-16 00:16:43】 这样的绝对时间,因此就无法通过国标PS流进行精准定位。因此,作为上级国标平台欲想实现上图的效果,要么使用存储设备私有SDK来请流,要么就要扩展PS流增加时间戳。我们采用了以扩展PS为首选、调用SDK为辅助的思路。

实现:实现扩展PS流,增加私有数据或自定义数据,标准的办法包括两种:其一是增加一种PES来承载视音频流的非标准信息;其二是在PES包中通过增加特定数据来实现。如下所示:

(方法1)增加一种ES和相应的PES,简称时间戳PES。
    这种ES表示视频帧录像时刻绝对时间戳。
    单位为秒或毫秒。在PSM中协商使用哪种单位。
    以32位整型的秒数或64位整型的毫秒数表示时间。
    每个视频帧PES必须后面跟着一个时间戳PES。对音频帧不做要求。
(方法2)使用PES保留的extend字段。
    在每个视频帧PES的extend字段上携带像时刻绝对时间戳。
    单位为秒或毫秒。在PES的extend字段中协商使用哪种单位。
    以32位整型的秒数或64位整型的毫秒数表示时间。
    录像的音频PES可不必携带此字段。
(方法3)使用 stream_id=private_stream_1时的PES_packet_data_byte 承载专用数据。
(方法4)使用 stream_id=private_stream_2时的PES_packet_data_byte 承载专用数据。

具体的,可以参考ISO/IEC 13818-1的附录H来获得更多详细实现细节。经过评估,我选择了(方法2)作为最终实现方法。实现细节如下:

扩展ps流增加“视频帧录像时刻绝对时间戳”方法相关推荐

  1. QT界面中实现视频帧显示的多种方法及应用

    QT界面中实现视频帧显示的多种方法及应用 (一) 引言 1.1 视频帧在QT界面中的应用场景 1.2 不同方法的性能和适用性分析 1.2.1 使用QLabel和QPixmap 1.2.2 使用QPai ...

  2. 模糊视频帧插值:CVPR2020论文点评

    模糊视频帧插值:CVPR2020论文点评 Blurry Video Frame Interpolation 论文链接:https://arxiv.org/pdf/2002.12259.pdf 摘要 现 ...

  3. 音视频学习(十)——ps流

    1. 简介 PS的封装格式需要支持MPEG2/MPEG4/H.264等视频和MPEG系列的音频,支持在多个层次加入私有数据,方便解码.拖动和加入延时,同时考虑到标准的PS.TS 和 RTP 封装方式间 ...

  4. 最简单的GB28181视频PS流播放器。

    一 从PS流中提取h264和aac. 移步:https://blog.csdn.net/qq_39805297/article/details/107083322 二 基于ffmpeg解码h264获取 ...

  5. 视频知识基础:什么是TS、PS流?

    在MPEG-2系统中,信息复合/分离的过程称为系统复接/分接,由视频,音频的ES流和辅助数据复接生成的用于实际传输的标准信息流称为MPEG-2传送流(TS:TransportStream). 据传输媒 ...

  6. 海康威视实时预览回调PS流用EasyRTMP向RTMP服务器推流中视频数据处理的代码

    在上一篇方案<EasyRTMP结合海康HCNetSDK获取海康摄像机H.264实时流并转化成为RTMP直播推流(附源码)>我们介绍了将海康安防摄像机进行互联网直播的整体方案流程,其中有一个 ...

  7. 视频知识基础:什么是TS、PS流? .

    在MPEG-2系统中,信息复合/分离的过程称为系统复接/分接,由视频,音频的ES流和辅助数据复接生成的用于实际传输的标准信息流称为MPEG-2传送流(TS:TransportStream). 据传输媒 ...

  8. spring boot 使用javaCV的FFmpeg帧捕捉器捕捉流的音频与视频帧来实现视频流下载保存

    spring boot 使用javaCV的FFmpeg帧捕捉器捕捉流的音频与视频帧来实现视频流下载保存 实现图解: 一.引入maven jar包 <dependency><group ...

  9. EasyRTMP:RTMP推流海康威视实时预览回调PS流用EasyRTMP向RTMP服务器推流中视频数据处理的代码

    在上一篇方案<EasyRTMP结合海康HCNetSDK获取海康摄像机H.264实时流并转化成为RTMP直播推流(附源码)>中我们介绍了将海康安防摄像机进行互联网直播的整体方案流程,其中有一 ...

最新文章

  1. Linux Kernel 5.10 aarch64体系对TTBR寄存器的设置
  2. springmvc报错 nested exception is org.mybatis.spring.MyBatisSystemException:
  3. Python之数据加密与解密(hashlib、hmac、random、base64、pycrypto)--转载
  4. [列联相关] 列联系数计算及假设检验
  5. 即插即用,运维工程师必会正则表达式大全
  6. cocos2d cocostudio
  7. 如何区分abcd类地址_ip地址abc类怎么区分
  8. QT cmd强制删除文件
  9. JS中的window对象和document对象是什么?有什么区别?
  10. 【学习记录】基于知识图谱的虚假新闻检测
  11. 如果我们能正确测本因子
  12. siggraph_Siggraph的统一性
  13. 使用Excel和Matlab批量修改图片名称
  14. 给Unity开发者的C#内存管理(第一部分) C# Memory Management for Unity Developers (part 1 of 3)
  15. 上海居住证积分办理攻略,太容易了,快来收藏!!!
  16. knif4j 访问不了
  17. Android pins 模块化架构gradle配置
  18. 贵大计算机学院张达敏,贵大计算机研究生怎么样?
  19. java实现的三阶贝塞尔曲线_n 阶贝塞尔曲线计算公式实现
  20. ispring sdk 8.7 Crack ispring sdk 9.7

热门文章

  1. 苹果移动设备型号汇总
  2. 院内导航系统哪家口碑好?医疗院内导航地图公司排名
  3. Java小技巧:javamysql数据库连接
  4. Xilinx JESD204B IP使用
  5. *args 和 **kwargs的用法
  6. 开发了个安卓软件-照片涂鸦
  7. 深入解析Safe多签钱包智能合约:代理部署与核心合约
  8. 网管随笔06---【电源开关面板引起的开机4秒后关机问题】
  9. 学习使用MySQL 求平均值函数AVG
  10. 软件实施-01-服务器