关于ffmpeg的avpacket里的pts问题
来源:互联网 发布:iphone手机倒计时软件 编辑:程序博客网 时间:2024/06/06 03:40
在进行存储视频流的时候,必须将avpacket里的pts设置好,否则会出现视频过快或过慢的情况,在此主要用到ffmpeg里的av_rescale_rnd函数,可看之前的博客。
//time_base:time_base.num/time_base.den,1/9000
AVRational time_base1=in_stream->time_base;
//Duration between 2 frames (us)
int64_t calc_duration=(double)AV_TIME_BASE/av_q2d(in_stream->r_frame_rate);
//Parameters
packet->pts=(double)(frame_index*calc_duration)/(double)(av_q2d(time_base1)*AV_TIME_BASE);
packet->dts=packet->pts;
packet->duration=(double)calc_duration/(double)(av_q2d(time_base1)*AV_TIME_BASE);
frame_index++;
}
/* copy packet */
//转换PTS/DTS(Convert PTS/DTS) packet->pts*out_stream->time_base.den/ in_stream->time_base.den算出现在的时间
packet->pts = av_rescale_rnd(packet->pts, out_stream->time_base.den,in_stream->time_base.den,AV_ROUND_NEAR_INF);
packet->dts = av_rescale_rnd(packet->dts, out_stream->time_base.den,in_stream->time_base.den,AV_ROUND_NEAR_INF);
packet->duration = av_rescale_q(packet->duration, in_stream->time_base,out_stream->time_base);
packet->pos = -1;
packet->stream_index=0;
- 关于ffmpeg的avpacket里的pts问题
- 关于FFMPEG里读取的h264的AVPACKET存储nalu成为h264问题
- AVPacket的pts和dts
- FFmpeg 中AVPacket的使用
- FFmpeg 中AVPacket的使用
- 关于 ffmpeg 中av_rescale_rnd 和avcodec_encode_video2(AVCodecContext *avctx, AVPacket *avpkt, 的含义
- FFMPEG结构体分析:AVPacket(解码前的数据)
- C/C++音视频库ffmpeg的数据包AVPacket分析
- FFMPEG的AVFormatContext、AVStream、AVPacket、AVFrame时间戳分析
- FFMPEG AVPacket
- FFMPEG AVPacket
- linux的pts/8问题
- 关于ffmpeg的avcodec_init()问题
- 关于FFmpeg对手机里拍摄的视频进行转码时角度问题的处理
- DTS和PTS的解释(FFMPEG、HLS相关)
- DTS和PTS的解释(FFMPEG、HLS相关)
- DTS和PTS的解释(FFMPEG、HLS相关)
- DTS和PTS的分析(FFMPEG、HLS相关)
- Platform设备驱动
- Scala学习
- Adaboost
- 【Scala】Scala的类层级
- proftpd的mod_copy模块未授权调用利用记录
- 关于ffmpeg的avpacket里的pts问题
- Javascript 类的实现
- Flatten Binary Tree to Linked List - LeetCode 114
- ado.net连接oracle
- 【Scala】特质与特质的线性化
- 记录开始
- QCombobox组合框的样式
- Macbook下Android studio删除project的方法
- 利用指针实现10个数组元素逆序交换