已知视屏的加密时的pts时间戳,怎么计算播放时的pts? 40C

视频播放不正确,速度太快,说明pts有问题,网上找过计算的公式感觉套用不起来,播放还是不对。

有音视频开发的高手请指点下吧,万分感激!!!!

 // 委托获取Packet数据
        private unsafe void avPacketTodo(JT1078Codec codec, JTRTHead head, AVPacket* pkt)
        {
            // pts需要计算,公式:第n帧的pts = n * ((1 / timbase)/ fps)

            /*
             * 在解码视频流的时候对每一个视频帧都会有一个时间戳pts(显示时间戳)
             * 得到这个pts的值,并记下最开始的一个pts值(pts_00)
             *以后画面显示的时间就可以用当前播放的帧的时间戳(pts_now -pts_00)/90000获得了,单位是秒
             */
            if (pts_00 == 0)
            {
                pts_00 = (ulong)head.RTTimeSpan;
                tomp4.WriteFrame(pkt,0);
            }
            else
            {
                ulong pts = (ulong)(head.RTTimeSpan- pts_00) / 90000*1000;
                tomp4.WriteFrame(pkt, (long)pts);
            }

        }
0

2个回答

enc_pkt.pts = count * (video_st->time_base.den) / ((video_st->time_base.num) * fps);

0
boonya
boonya count是帧的计算?
大约一年之前 回复

long pts_1 = packet->pts * 1000 / (video_stream->time_base.den / video_stream->time_base.num);

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
FFmpeg中的时间戳(DTS和PTS)
FFmpeg里有两种时间戳:DTS(Decoding Time Stamp)和PTS(Presentation Time Stamp)。 顾名思义,前者是解码的时间,后者是显示的时间。要仔细理解这两个概念,需要先了解FFmpeg中的packet和frame的概念。 FFmpeg中用AVPacket结构体来描述解码前或编码后的压缩包,用AVFrame结构体来描述解码后或编码前的信号帧。 对于视
H264系列(9):H264中的时间戳(DTS和PTS)
H264系列(9):H264中的时间戳(DTS和PTS)与视频帧I B P的关系
【FFMPEG】I,P,B帧和PTS,DTS时间戳的关系
FFmpeg里有两种时间戳:DTS(Decoding Time Stamp)和PTS(Presentation Time Stamp)。 顾名思义,前者是解码的时间,后者是显示的时间。要仔细理解这两个概念,需要先了解FFmpeg中的packet和frame的概念。 FFmpeg中用AVPacket结构体来描述解码前或编码后的压缩包,用AVFrame结构体来描述解码后或编码前的信号帧。 对于视
视音频pts计算
1、概述 这段时间做转码,计算pts的时候都是转换一下时间基,我就在想这个pts如果没有原来的pts做参考如何计算其值?摸索一番总算明白了头绪记录于此。 2、视频pts 视频比较好理解,就是每帧递增,假如fps是25帧的,时间基为fps的倒数1/25,那么pts递增即可。 如下: 第一帧:pts=0 第二帧:pts=1 第三帧:pts=3 . . . 第n帧:pts = n
视频解码研究之PTS(2)Mp4格式,AVI格式和MKV格式
关于其他格式的PTS请看: 视频解码研究之PTS(1)TS格式和FLV格式 3.MP4格式 Mp4格式中涉及到PTS信息的atom包括:stts,ctts和elst。 先说stts,格式如下: 存储着一系列的参数对(sample_count, sample_time_delta)。 每一个参数对给出了具相同时间间隔的连续的sample的个数和这些sample的时间间
rtp dts时间戳 计算 rtmp dts时间戳
假设:音频:AAC-LC,44100HZ             视频:H264,25FPS 手写稿算法如下:
FFmpeg通过PTS获取当前帧所在的毫秒时间
AVStream *stream=pFormatCtx->streams[packet.stream_index];  avcodec_decode_video2(pCodecCtx,pFrame, &got_frame, &packet);       int second= pFrame->pts * av_q2d(stream->time_base);  具体就是如上函数了。
ffmpeg之H264中的时间戳(DTS和PTS)
(1)Ffmpeg中的DTS 和 PTSH264里有两种时间戳:DTS(Decoding Time Stamp)和PTS(Presentation Time Stamp)。 顾名思义,前者是解码的时间,后者是显示的时间。要仔细理解这两个概念,需要先了解FFmpeg中的packet和frame的概念。FFmpeg中用AVPacket结构体来描述解码前或编码后的压缩包,用AVFrame结构体来描述解码...
ffmpeg 时间戳问题汇总
ffmpeg 时间戳问题汇总   http://www.cnblogs.com/loveclover/archive/2011/03/23/1993065.html 问题是这样的 用一个 VLC(流媒体客户端) 去请求流媒体服务器上的数据, 但是获得的数据播放速度明显快于1倍速,大概是 timestamp 不对,不知道是服务器的错误,还是客户端解码时出错, 总感觉服务器那边有问题, 由于
ffmpeg时间戳计算
ffmepg中的时间戳,是以微秒为单位,关乎timebase变量,它是作为dts、pts的时间基准粒度,数值会很大。视频编码前,会设置帧率,如1秒25帧, 按90000的时间基,一帧就是3600。avcodec_encode_video2成功后(如ffmpeg.c中do_video_out),pkt->pts被设置成帧序号,如33帧。紧接着是av_packet_rescale_ts(&amp...
音频,视频时间戳计算及每帧播放时间
av_rescale_q用于计算Packet的PTS。av_rescale_q的返回值是一个很大的整数,且每次计算的结果间隔很大。 不同于avcodec_encode_video改变AVCodecContext *avctx的pts(小整数,且间隔小)。av_rescale_q(a,b,c)是用来把时间戳从一个时基调整到另外一个时基时候用的函数。它基本的动作是计算a*b/c,但是这个函数还是必需的
H264中的时间戳(DTS和PTS)
(1)Ffmpeg中的DTS 和 PTS H264里有两种时间戳:DTS(Decoding Time Stamp)和PTS(Presentation Time Stamp)。 顾名思义,前者是解码的时间,后者是显示的时间。要仔细理解这两个概念,需要先了解FFmpeg中的packet和frame的概念。 FFmpeg中用AVPacket结构体来描述解码前或编码后的压缩包,用AVFrame
PES包的PTS详解
PES包的PTS详解
关于时间戳的那些事
1.先来看看简单点的 2.按照采样率计算 3.音视频同步
FFMPEG处理音频时间戳的主要逻辑
FFMPEG处理音频时间戳的主要逻辑是: 1. demux读取AVPacket。以输入flv为例,timebase是1/1000,第一个音频包可能是46,代表0.046秒。 2. decoder解码AVPacket为AVFrame,frame的pts为NOPTS,需要设置,否则后面都会有问题。主要是调用:av_rescale_delta: AVRational in_tb = decod
ts 中 pts 计算
http://zhidao.baidu.com/link?url=cw36nJMYAmZKZWbT6BFwHQrBwpd4MdVAuSeNxdtW40XcEAu5gzkU50ec0JN08SvQ4vwrJOl5FdzHPwNZBxLKSel0BbT_KM-CW8ajUCS9tYG MPEG2/TS流中PES报头中的PTS值如何计算? 在wireshark软件中查看PTS的值,可以看到以秒为单
FFmpeg 时间单位与转换
1. 前言FFmpeg存在很多个时间单位,比如pts, dts, ffmpeg内部基准时间,常规时间 本文谈谈他们之间的转换2. ffmpeg内部基准时间与常规时间2.1 基准时间ffmpeg 内部的时间基为AV_TIME_BASE, 其大小如下:#define AV_TIME_BASE 1000000即,ffmpeg内部时间单位为微秒 (μs)AVStream duration : A
C++编程音视频库ffmpeg的pts时间换算方法
ffmpeg中的pts,dts,duration时间记录都是基于timebase换算,我们主要分析下pts的时间怎么换算,其它的是一样的换算。ffmpeg的时间换算对许多新接触同学算是一个大坑,很多刚接触ffmpeg的同学都不容易搞清楚它的时间计算方法。 我们先看下ffmpeg时间是怎么算的: 一帧图像(音频)的时间戳(时间戳一般以第一帧为0开始)= pts * (AVRational.num
关于ffmpeg的avpacket里的pts问题
在进行存储视频流的时候,必须将avpacket里的pts设置好,否则会出现视频过快或过慢的情况,在此主要用到ffmpeg里的av_rescale_rnd函数,可看之前的博客。                                       //time_base:time_base.num/time_base.den,1/9000                       AV
PTS/DTS到毫秒的转换
PTS - Presentation Timestamp,播放的时间戳。 DTS - Decompress Timestamp, 解码的时间戳。 这2个概念经常出现在音频视频编码和播放中,其实际意义是,PTS是真正录制和播放的时间戳,而DTS是解码的时间戳。对于普通的无B桢视频(H264 Baseline或者VP8),PTS/DTS应该是相等的,因为没有延迟编码。对于有B桢
如何算音频PTS
以采样8000hz为例,也就是说1秒种会有8000个采样, 我的DSP采集上来的数据是以576个采样为一帧。 AudioNum = 8000/576个音频帧。 1000/AudioNum = 每个音频所占用的毫秒数(ns) ns*90=PTS。 http://blog.163.com/tianyang%40yeah/blog/static/702238372010726225
FLV rtmp 里存在B帧的情况下 time stamp 时间戳 2
先看看下面的这个帧 FLV rtmp 里存在B帧的情况下 time stamp 时间戳 http://blog.csdn.net/wzw88486969/article/details/62229133 按照上面的帧计算出来的 CTS也发出去了,可是播放端总报错,各种怀疑PTS DTS CTS问题,先上传我的PTS DTS的打法  CMTime pts =   CMSample
音视频中的PTS和DTS及同步
相关索引:https://blog.csdn.net/knowledgebao/article/details/84776869        视频的播放过程可以简单理解为一帧一帧的画面按照时间顺序呈现出来的过程,就像在一个本子的每一页画上画,然后快速翻动的感觉。        但是在实际应用中,并不是每一帧都是完整的画面,因为如果每一帧画面都是完整的图片,那么一个视频的体积就会很大,这样对于...
DTS和PTS的解释
DTS和PTS的解释  FFmpeg里有两种时间戳:DTS(Decoding Time Stamp)和PTS(Presentation Time Stamp)。顾名思义,前者是解码的时间,后者是显示的时间。要仔细理解这两个概念,需要先了解FFmpeg中的packet和frame的概念。  FFmpeg中用AVPacket结构体来描述解码前或编码后的压缩包,用AVFrame结构体来描述解码后或编
音视频pts计算
视频pts计算 音频pts计算 rtp时间戳 文件时间戳 总结视频pts计算 PTS(Presentation Time Stamp):即显示时间戳,这个时间戳用来告诉播放器该在什么时候显示这一帧的数据。 DTS(Decoding Time Stamp):即解码时间戳,这个时间戳的意义在于告诉播放器该在什么时候解码这一帧的数据。需要注意的是:虽然 DTS、PTS 是用于指导播放端的行为,但它们是在编
FFmpeg 入门(5):视频同步
本文转自:FFmpeg 入门(5):视频同步 | www.samirchen.com 视频如何同步 在之前的教程中,我们已经可以开始播放视频了,也已经可以开始播放音频了,但是视频和音频的播放还未同步,我们要怎么办呢? PTS 和 DTS 好在音频和视频都有信息来控制播放时的速度和时机。音频流有一个采样率(sample rate),视频流有一个帧率(frame per second)。但是,...
如何在H264数据中获取PTS
如何在H264数据中获取PTS 首先需要将数据流,分割成一个一个独立的NALU数据。   接着获取NALU的nal_type,i_n
音视频录入的pts和dts问题
目前我在从事远程rtsp视频采集+本地
FFMPEG-0.11.1分析之ffmpeg流转码中的时间戳问题
【该文章,是属于ffmpeg的细枝末节,会写的比较啰嗦】 【不同的转码环境,会有代码流程的不同】 首先普及下: 时间戳,DTS(decoding time stamp),PTS(presention time stamp),CTS(current time stamp)。 ffmepg中的时间戳,是以微秒为单位,关乎timebase变量,它是作为dts、pts的时间基准粒度,数
ffmpeg开发:关于对错误pts () < dts () in stream的解决方法
关于对错误pts () 出现这种错误是由于视频pts大于dts。pts是视频播放时间,dts是送入解码器解码时间。所以一帧视频播放时间必须在解码时间点之后。解决方法是进行判断:if(packet.pts 产生错误的原因一般是对dts,pts操作不当。比如在进行视频分割时,常用的方法是视频截取后半段视频pts与dts减去前半段pts和dts。前半段pts可能比dts大(当解码的视频帧不是I帧时)
TS流解码分析之I,P,B帧以及PTS,DTS
关于TS流,zhe
录像音视频同步原理分析及PTS计算公式
图解分析音视频同步要分别保证开始的PTS一样,PTS是控制帧的显示时间的,所以要实现音视频同步必须分别设置音视频的PTS。注:音、视频最后一帧的PTS时刻不一定相同。1. 视频时间戳计算pts = count++ *(1000/fps); //其中count初始值为0,每次打完时间戳count加1. //在ffmpeg,中的代码为 pkt.pts= count++ * (Ctx-&amp;gt;tim...
[ffmpeg] 音视频同步之提取PTS
PTS: 指播放时间戳 利用音频的PTS和视频PTS,如何作同步,此文不作叙述。 在这里讲如何取得音频PTS和视频的PTS? 利用ffmpeg 解码音视频,大致过程如下: [1]------------------------------->[2]------------------------------------>[3] 从文件中分别获取视频流--->从视频流中提取包
视频、音频打时间戳的方法及其音视频同步(播放)原理
视频、音频打时间戳的方法   http://blog.csdn.net/wfqxx/article/details/5497138 1. 视频时间戳      pts = inc++ *(1000/fps);  其中inc是一个静态的,初始值为0,每次打完时间戳inc加1.     在ffmpeg,中的代码为     pkt.pts= m_nVideoTimeS
RTP时间戳及多媒体通过处理
多媒体通信同步方法,主要有时间戳同步法、同步标记法、多路复用同步法三种。下面主要讨论时间戳同步法,特别是RTP时间戳同步。内容包括RTP媒体间同步的实现,为什么需要RTCP的NTP时间来实现媒体间同步?没有RTCP,能实现RTP媒体间的同步吗?DirectShow时间戳和RTP时间戳的区别,MPEG2-TS流的时间戳等。本文只简单讨论时间戳同步的原理,不涉及具体的实现方法,如音频帧和视频帧时间戳的
live555 h264 videostream 数据流和时间戳的分析
rtsp客户端发送播放请求后,rtsp服务器调用流程如下 h264 video rtsp 1.ServerMediaSubsession::startStream -> OnDemandServerMediaSubsession::startStream 2.startStream -> StreamState::startPlaying 3.MediaSink::star
DTS和PTS(HLS音视频同步)
转载请注明出处:http://www.cnblogs.com/fpzeng/archive/2012/07/26/dts_pts.html 原由: 近来在研究HLS(HTTP Live Streaming),以实现android上播放m3u8文件。由于TS段的切分不统一,每个视频网站给出的m3u8 playlists总有差别,在时间戳显示上有差异,所以对DTS和PTS进行了研究。DTS
音频、视频时间戳计算及每帧播放时间
av_rescale_q用于计算Packet的PTS。av_rescale_q的返回值是一个很大的整数,且每次计算的结果间隔很大。 不同于avcodec_encode_video改变AVCodecContext *avctx的pts(小整数,且间隔小)。 av_rescale_q(a,b,c)是用来把时间戳从一个时基调整到另外一个时基时候用的函数。它基本的动作是计算a*b/c,但是这个
DTS和PTS的解释(FFMPEG、HLS相关)
DTS和PTS的解释(FFMPEG、HLS相关) 转载请注明出处:http://www.cnblogs.com/fpzeng/archive/2012/07/26/dts_pts.html 原由: 近来在研究HLS(HTTP Live Streaming),以实现android上播放m3u8文件。由于TS段的切分不统一,每个视频网站给出的m3u8 playlists总有差别,在时间戳
理解音视频 PTS 和 DTS
视频 视频的播放过程可以简单理解为一帧一帧的画面按照时间顺序呈现出来的过程,就像在一个本子的每一页画上画,然后快速翻动的感觉。 但是在实际应用中,并不是每一帧都是完整的画面,因为如果每一帧画面都是完整的图片,那么一个视频的体积就会很大,这样对于网络传输或者视频数据存储来说成本太高,所以通常会对视频流中的一部分画面进行压缩(编码)处理。由于压缩处理的方式不同,视频中的画面帧就分为
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 学习java基础语法时 学习java时

相似问题

5
大视频为什么在安卓APP上播放一会就卡死
9
怎样在网页(html)上播放avi格式的视频,不想用flash
3
http://www.myitdreams.com/q146 这个问题怎么解决
1
最近在做一个项目,需要在线观看视频,听说过视频流这个东西,具体怎么实现有大神能说说吗?
1
怎么提取视频帧中颜色特征、灰度特征、纹理特征,然后组成一个特征向量?
2
怎么解决视频在不同手机颜色不一致的问题?
2
想用H5技术IE浏览器播放wmv格式的视频文件中的声音、视频(可以分别播放)不使用falsh
3
video.js插件设置的远程地址上的视频,在谷歌浏览器上进度条不能拖动,一拖动就重新播放
3
C# 不添加控件的情况,如何播放本地视频文件
2
需求:计算抖音app中500个视频中暗屏的占比?
2
android端的多屏播放(会试视频,监控视屏)如何实现?
1
videoview快要滑出界面时,视频会覆盖顶上的导航条,求大佬指点!
4
android MediaPlayer能否实现音频,视频的交替播放?
3
自建私有云怎么在线播放视频?
1
微信浏览器H5 video标签的currentTime怎么设置不上
1
unity怎么制作8i那样的全息投影
11
试用了各种办法 怎么才能把 淘宝的这个视频怎么提取出来!
3
opencv怎么实现快速扫描视频的随机几帧
2
python openCV怎么才能实现快速遍历一个视频
2
已知视屏的加密时的pts时间戳,怎么计算播放时的pts?