当前位置: 首页 > news >正文

做网站cnfg影视网站怎么做内链

做网站cnfg,影视网站怎么做内链,网站建设公司如何找客户,医院网站 功能用FFMPEG SDK进行视频转码压缩的时候#xff0c;转码成功后去看视频的内容#xff0c;发现音视频是不同步的。这个的确是一个恼火的事情。我在用FFMPEG SDK做h264格式的FLV文件编码Filter的时候就碰到了这个问题。经过研究发现#xff0c;FFMPEG SDK写入视频的时候有两个地方… 用FFMPEG SDK进行视频转码压缩的时候转码成功后去看视频的内容发现音视频是不同步的。这个的确是一个恼火的事情。我在用FFMPEG SDK做h264格式的FLV文件编码Filter的时候就碰到了这个问题。         经过研究发现FFMPEG SDK写入视频的时候有两个地方用来控制写入的时间戳一个是AvPacket, 一个是AvFrame。 在调用avcodec_encode_video的时候需要传入AvFrame的对象指针也就是传入一帧未压缩的视频进行压缩处理AvFrame包含一个pts的参数这个参数就是当前帧将来在还原播放的时候的时间戳。而AvPacket里面也有pts还有dts。说起这个就必须要说明一下I,P,B三种视频压缩帧。I帧就是关键帧不依赖于其他视频帧P帧是向前预测的帧只依赖于前面的视频帧而B帧是双向预测视频帧依赖于前后视频帧。由于B帧的存在因为它是双向的必须知道前面的视频帧和后面的视频帧的详细内容后才能知道本B帧最终该呈现什么图像。而pts和dts两个参数就是用来控制视频帧的显示和解码的顺序。       pts就是帧显示的顺序。       dts就是帧被读取进行解码的顺序。      如果没有B帧存在dts和pts是相同的。反之则是不相同的。关于这个的详细介绍可以参考一下mpeg的原理。 再说说AvPacket中包含的pts和dts两个到底该设置什么值 pts和dts需要设置的就是视频帧解码和显示的顺序。每增加一帧就加一并不是播放视频的时间戳。 但是实践证明经过rmvb解码的视频有时候并不是固定帧率的而是变帧率的这样如果每压缩一帧pts和dts加一的方案为导致音视频不同步。 那怎么来解决音视频同步的问题呢 请看如下代码段。 lTimeStamp 是通过directshow 获取的当前的视频帧的时间戳。 m_llframe_index为当前已经经过压缩处理的帧的数量。 首先av_rescale计算得到当前压缩处理已经需要处理什么时间戳的视频帧如果该时间戳尚未到达directshow当前提供的视频帧的时间戳则将该帧丢弃掉。 否则进行压缩操作。并设置AVPacket的pts和dts。这里假设B帧不存在。 因为在将来播放的时候视频以我们设定的固定播放帧率进行播放所以需要根据设定的播放帧率计算得到的视频帧时间戳和directshow提供的当前视频帧的时间戳进行比较设定是否需要进行实施延缓播放的策略。如果需要延缓播放则将pts增加步长2否则以普通速度播放则设置为1.dts与之相同。 __int64 x av_rescale(m_llframe_index,AV_TIME_BASE*(int64_t)c-time_base.num,c-time_base.den); if( x lTimeStamp ) { return TRUE; } m_pVideoFrame2-pts lTimeStamp; m_pVideoFrame2-pict_type 0; int out_size avcodec_encode_video( c, m_pvideo_outbuf, video_outbuf_size, m_pVideoFrame2 ); /* if zero size, it means the image was buffered */ if (out_size 0) { AVPacket pkt; av_init_packet(pkt); if( x lTimeStamp ) {    pkt.pts pkt.dts m_llframe_index;    pkt.duration 0; } else {    pkt.duration (lTimeStamp - x)*c-time_base.den/1000000 1;    pkt.pts m_llframe_index;    pkt.dts pkt.pts;    m_llframe_index pkt.duration; } //pkt.pts lTimeStamp * (__int64)frame_rate.den / 1000; if( c-coded_frame c-coded_frame-key_frame ) {     pkt.flags | PKT_FLAG_KEY; } pkt.stream_index m_pVideoStream-index; pkt.data m_pvideo_outbuf; pkt.size out_size; /* write the compressed frame in the media file */ ret av_interleaved_write_frame( m_pAvFormatContext, pkt ); } else { ret 0; }
http://www.yutouwan.com/news/135844/

相关文章:

  • 海口公司网站建设做设计什么兼职网站建设
  • 怎么注册自己的微网站天津建设网站需要的费用
  • 官方网站举例四川seo推广方案
  • wordpress企业建站流程wordpress 文章类
  • 网站建设教程浩森宇特sem和seo都包括什么
  • 手机网站横向切换wordpress 打不开页面
  • wordpress单位内网做网站做外卖网站需要多少钱
  • 保定网站制作专业蓝天云免费空间主机
  • 手机网站的建设产品推广宣传语
  • 网站推广排名收费什么是 网站的逻辑结构
  • 自己做的网站加载慢的原因为什么只有建设网站打不开
  • 无需注册免费创建网站aspcms模板
  • 网站开发微博微信公众平台小程序怎么发布
  • 做网站是什么软件网站类别选择
  • wap建站教程重庆seo网络推广优化
  • 电子商务网上购物网站建设规划html5手机网站案例
  • 做明星粉丝网站免费制作企业小程序
  • 天水网站开发技术招聘专业的网站建设托管
  • 沈阳外贸网站制作公司搭建直播网站需要怎么做
  • 商城网站建设一般需要多少钱世界500强企业排名2024最新名单
  • 宁波网站建设制作多少钱一个网站的欢迎页怎样做
  • 旅游包车网站最新模板重庆seo网站排名优化
  • ps做购物小网站展厅展馆策划设计
  • 网站开发框架系统做网站加班
  • 东阳市住房和城乡建设局网站制作图片下载什么软件
  • 用asp做网站遇到的问题包装在线设计网站
  • wordpress 移动站网站哪家公司做得好
  • 电子商务网站建设功能网站美工设计流程
  • 怎么搭建本地网站ui设计师个人网站建设
  • 网站建设费是宣传费用吗wordpress手机端主题插件下载