ffmpeg转rtmp有延时(ffmpeg stimeout)

PTS:演示时间戳.PTS主要用于测量解码后的视频帧何时显示DTS:解码时间戳。Dts主要识别读入内存的比特流何时开始发送到解码器进行解码,即pts反射帧何时开始显示,DTS反射数据流何时开始解码。这里的“什么时候”怎么理解?如果有某一帧,假设在第10秒开始显示。那么它的pts是什么呢?是10吗?还是10s?或者都不是。要回答这个问题,我们先介绍一下FFmpeg中时基的概念,就是time_base。它也被用来测量时间。如果把1秒分成25等份,你可以理解为是一把尺子,那么每个格子代表1/25秒。此时Time _ base={1,25}。如果把1秒分成90000份,每一个刻度就是1/90000秒,此时time _ base={1,90000}。所谓时基,就是每个刻度是多少秒,pts的值就是它占据了多少个时间刻度(多少格)。它的单位不是秒,而是时间刻度。只有pts加上time_base同时在一起,才能表达出时间是什么。比如我只告诉你一个物体的长度在一把尺子上占了20个刻度。但如果我不告诉你这把尺子总共有多少厘米,你就无法计算出每个刻度是多少厘米,也无法知道一个物体的长度。Pts=20个刻度time_base={1,10}每个刻度是1/10厘米,所以ffmpeg中物体的长度=pts * time _ base=20 * 1/10厘米。Av_q2d(time_base)=每个刻度是多少秒?这时,你应该很容易理解pts*av_q2d(time_base)是该帧的显示时间戳。我们先来了解一下时基转换,以及为什么要有时基转换。c音视频开发学习资料:点击接收音视频开发(资料、文档、视频教程面试问题)(ffmpeg webrtrtrtmp RTSP HLS RTP)
首先,不同的封装格式,时基是不同的。另外,在整个转码过程中,不同的数据状态有不同的时基。拿25fps的mpegts封装格式来说(只有视频,音频大致相同,但略有不同)。当数据未压缩时(即YUV或其他),ffmpeg中对应的结构是AVFrame,其时基是AVCodecContext的time _ base,AVRational {1,25}。压缩数据的时基(对应结构为AVPacket)是AVStream的time_base,AVRational{1,90000}。因为数据状态不一样,时基不一样,我们要转换,1/25时间尺度要占10个网格,1/90000要占多少个网格。这是pts的转换。根据pts计算一帧在整个视频中的时间位置:timestamp(秒)=pts * AV _ Q2D(ST-time _ base)duration与PTS单位相同,duration表示当前帧的时长占用多少帧。或者了解两帧之间的间隔是多少格。一定要了解单位。Pts:网格数AV _ Q2D (ST-time _ base) 3360秒/网格计算出的视频长度:TIME(seconds)=ST-duration * AV _ Q2D(ST-TIME _ BASE)ffmpeg内部的时间与标准时间的转换方法:FFMPEG内部的时间戳=AV _ TIME _ BASE * AV _ TIME _ BASE _ q=1/AV _ TIME _ BASE AV _ restore _ q(int 64 _ ta,avrational bq,avrational CQ)函数该函数用于计算a*bq/cq以调整时间戳从一次在时基转换中应该首先使用该函数,因为它可以避免溢出。函数表示bq下的一个格,在cq下是多少。关于音频pts的计算:audio sample _ rate每秒:个样本,即采样率,表示每秒采集多少个采样点。比如44100HZ,即一秒采集44100个样本。也就是说,每个样本的时间是1/44,100秒。音频帧AVFrame具有nb_samples个样本,因此,AVFrame在标准时间中需要nb_samples*(1/44100)秒,即duration_s=nb_samples*(1/44100)秒,在转换为AVStream的时基下,duration=duration _ s/av _ q2d(st-time_base)基于ST-time _ base的num值通常等于采样率,因此,duration=nb _ samples . pts=n * duration=n * nb _ sample补充:next _ sample

其他教程

隔壁的孩子都馋哭了。Tik Tok粉上涨的实用声发射技巧

2022-8-17 18:34:09

其他教程

西安钟楼介绍视频(西安钟楼视频讲解)

2022-8-17 18:36:16

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索