当前位置 博文首页 > eguid:JavaCV开发详解之31:如何计算pts/dts时间戳,在视频转码

    eguid:JavaCV开发详解之31:如何计算pts/dts时间戳,在视频转码

    作者:[db:作者] 时间:2021-09-05 09:52

    javacv实战专栏目录:
    JavaCV实战专栏文章目录(JavaCV速查手册)

    JavaCV实战教程系列

    前言

    本章讲解如何在视频推流时重新计算时间戳。主要解决无时间戳情况下和其他需要重新计算时间戳的场景。

    群里很多小伙伴们是做安防监控的,经常反馈的问题是视频源没有时间戳,或者是设备的视频源的时间戳有问题,导致画面中止,卡顿等问题。
    除了因为网络问题外,画面中止和卡顿最大问题集中在时间戳问题上。

    如何重新计算时间戳(计算原理)

    原理其实很简单,就是帧间隔时间的累增。

    举个例子:
    如果帧率是25帧每秒,那帧间隔时间就是1000/25=40ms(单位:毫秒),后面每一帧视频的时间戳都累增40ms,由于ffmpeg的时间戳单位是微秒,所以每次累增40*1000=40000微秒。

    cs