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

虚拟网站建设百度推广官方电话

虚拟网站建设,百度推广官方电话,wordpress加载css,传奇端游平台一、需求 在某些情况下,可能需要直接使用H264/H265等原始数据流进行解码,比较常用的udp下的h264/h265。这时需要 av_parser_parse2 来组AVPacket,但对于视频的信息:宽高、格式等,可以根据 AVCodecParserContext 来获取&#xff0…

一、需求

在某些情况下,可能需要直接使用H264/H265等原始数据流进行解码,比较常用的udp下的h264/h265。这时需要 av_parser_parse2 来组AVPacket,但对于视频的信息:宽高、格式等,可以根据 AVCodecParserContext 来获取,也可以直接提取sps/pps/sei这些原始数据extradata
本文讲如何从原始数据流(AVPacket)中找出 extradata 信息

二、ffmpeg5.0版本以下

在旧版本的ffmpeg中, AVCodecParserContext 内部有个 split 函数,可以直接返回 extradata 在数据流中的位置

 AVCodecParserContext* m_parser    = nullptr;// 初始化 m_parser  // ........//// m_ctx : AVCodecContext*// pkt : AVPacket*// 其中第一个参数 m_ctx 可以不设置,直接设置为nullptr也可auto re = m_parser->parser->split(m_ctx, pkt->data, pkt->size);if (re > 0) {if (m_ctx->extradata_size <= 0 && m_ctx->extradata == nullptr) {//存放于解码器的上下文中,,在m_ctx释放的时候会自动释放m_ctx->extradata_size = re;m_ctx->extradata      = (uint8_t*) av_malloc(m_ctx->extradata_size+ AV_INPUT_BUFFER_PADDING_SIZE);memcpy(m_ctx->extradata, pkt->data, m_ctx->extradata_size);}}

三、ffmpeg5.0版本以上

ffmpeg5.0后 AVCodecParserContext 的 split 函数已删除
但可以使用 av_bsf_get_by_name("extract_extradata")
以下代码可供参考

bool VideoStreamUdpH26X::setupExtraData(const AVCodecParserContext* parser,
AVCodecContext*             ctx,
AVPacket*                   pkt)
{bool need = false;// 检查输入参数及必要信息if (!parser || !pkt || !ctx)return need;if (parser->width <= 0 || parser->height <= 0)return need;// 获取 extract_extradata BSFconst AVBitStreamFilter* bsf = av_bsf_get_by_name("extract_extradata");if (!bsf) {LOG_DEBUG() << "extract_extradata BSF not found";return need;}AVBSFContext* bsf_ctx = nullptr;auto          ret     = av_bsf_alloc(bsf, &bsf_ctx);if (ret < 0) {LOG_DEBUG() << "Failed to allocate BSF context, ret = " << ret;return need;}// 设置 BSF 的输入参数(使用 parser 的部分信息)bsf_ctx->par_in->codec_id   = (AVCodecID) parser->parser->codec_ids[0];bsf_ctx->par_in->codec_type = AVMEDIA_TYPE_VIDEO;bsf_ctx->par_in->width      = parser->width;bsf_ctx->par_in->height     = parser->height;ret = av_bsf_init(bsf_ctx);if (ret < 0) {LOG_DEBUG() << "Failed to initialize BSF context, ret = " << ret;av_bsf_free(&bsf_ctx);return need;}// 将包送入 BSF 提取 extradataret = av_bsf_send_packet(bsf_ctx, pkt);if (ret < 0) {LOG_DEBUG() << "Failed to send packet to BSF, ret = " << ret << printError(ret);av_bsf_free(&bsf_ctx);return need;}// 从 BSF 中取出过滤后的包ret = av_bsf_receive_packet(bsf_ctx, pkt);if (ret < 0 && ret != AVERROR(EAGAIN) && ret != AVERROR_EOF) {LOG_DEBUG() << "Failed to receive packet from BSF, ret = " << ret << printError(ret);av_bsf_free(&bsf_ctx);return need;}size_t   extradata_size = 0;uint8_t* side_extradata = av_packet_get_side_data(pkt,AV_PKT_DATA_NEW_EXTRADATA,&extradata_size);if (side_extradata && extradata_size > 0) {// 更新 extradataif (ctx->extradata_size != extradata_size) {if (ctx->extradata) {av_freep(&ctx->extradata);ctx->extradata_size = 0;}ctx->extradata = (uint8_t*) av_malloc(extradata_size + AV_INPUT_BUFFER_PADDING_SIZE);if (!ctx->extradata) {LOG_DEBUG() << "Failed to allocate memory for extradata";av_bsf_free(&bsf_ctx);return need;}ctx->extradata_size = extradata_size;memcpy(ctx->extradata, side_extradata, ctx->extradata_size);LOG_DEBUG() << "Extracted extradata: "<< QByteArray((char*) ctx->extradata, ctx->extradata_size).toHex();}need = true;}av_bsf_free(&bsf_ctx);return need;
}

文章转载自:
http://dinncoirvingite.stkw.cn
http://dinncocubbing.stkw.cn
http://dinncogibberellin.stkw.cn
http://dinncocanine.stkw.cn
http://dinncoengrain.stkw.cn
http://dinncoprincipled.stkw.cn
http://dinncoseiche.stkw.cn
http://dinncoullmannite.stkw.cn
http://dinncopinpoint.stkw.cn
http://dinncocomplementizer.stkw.cn
http://dinncokomondor.stkw.cn
http://dinncospleenful.stkw.cn
http://dinncosongfest.stkw.cn
http://dinncoundipped.stkw.cn
http://dinncouncordial.stkw.cn
http://dinncomandarine.stkw.cn
http://dinncoglycine.stkw.cn
http://dinncosulfuretted.stkw.cn
http://dinncobackdrop.stkw.cn
http://dinncopatchouli.stkw.cn
http://dinncokyack.stkw.cn
http://dinncoroven.stkw.cn
http://dinncowheelset.stkw.cn
http://dinncoscutiform.stkw.cn
http://dinncomodality.stkw.cn
http://dinncosailage.stkw.cn
http://dinncoforswear.stkw.cn
http://dinncosporter.stkw.cn
http://dinncolingayat.stkw.cn
http://dinncoluminesce.stkw.cn
http://dinncosquinny.stkw.cn
http://dinncofigurine.stkw.cn
http://dinncostrutbeam.stkw.cn
http://dinncochevroler.stkw.cn
http://dinncomonochasium.stkw.cn
http://dinncomicrotec.stkw.cn
http://dinncoinfundibulum.stkw.cn
http://dinncoplethora.stkw.cn
http://dinncogoldsmithry.stkw.cn
http://dinncooutwardness.stkw.cn
http://dinncoulianovsk.stkw.cn
http://dinncounbelief.stkw.cn
http://dinncoepitomize.stkw.cn
http://dinncocoyness.stkw.cn
http://dinncotwopence.stkw.cn
http://dinncorubify.stkw.cn
http://dinncotrimestrial.stkw.cn
http://dinncoliberation.stkw.cn
http://dinncocavernous.stkw.cn
http://dinncoonerous.stkw.cn
http://dinncopersonalise.stkw.cn
http://dinncopreselect.stkw.cn
http://dinncoscurry.stkw.cn
http://dinncoepenthesis.stkw.cn
http://dinncobeechen.stkw.cn
http://dinncovellicate.stkw.cn
http://dinncoweary.stkw.cn
http://dinncoreconcile.stkw.cn
http://dinncopulmonary.stkw.cn
http://dinncounconquerable.stkw.cn
http://dinncovalor.stkw.cn
http://dinncobrachistochrone.stkw.cn
http://dinncoteleset.stkw.cn
http://dinncofederate.stkw.cn
http://dinncofaveolate.stkw.cn
http://dinncotempering.stkw.cn
http://dinncorevivable.stkw.cn
http://dinncogca.stkw.cn
http://dinncoweaponry.stkw.cn
http://dinncoshelton.stkw.cn
http://dinncolateness.stkw.cn
http://dinncolucidly.stkw.cn
http://dinncomonosemy.stkw.cn
http://dinncoladrone.stkw.cn
http://dinncodogma.stkw.cn
http://dinncochamberlaine.stkw.cn
http://dinncoobjectivize.stkw.cn
http://dinncoszeged.stkw.cn
http://dinncopatelliform.stkw.cn
http://dinncoannunciator.stkw.cn
http://dinncocytotaxonomy.stkw.cn
http://dinncocorked.stkw.cn
http://dinncounderran.stkw.cn
http://dinncohawkmoth.stkw.cn
http://dinncochard.stkw.cn
http://dinncocorotate.stkw.cn
http://dinncounindicted.stkw.cn
http://dinncomicroelement.stkw.cn
http://dinncoagave.stkw.cn
http://dinncojassid.stkw.cn
http://dinnconeotype.stkw.cn
http://dinncocraftsmanship.stkw.cn
http://dinncoplanetary.stkw.cn
http://dinncodeceiver.stkw.cn
http://dinncoundone.stkw.cn
http://dinncolpi.stkw.cn
http://dinncovodun.stkw.cn
http://dinncomattress.stkw.cn
http://dinncolacunar.stkw.cn
http://dinncocomedienne.stkw.cn
http://www.dinnco.com/news/102385.html

相关文章:

  • 广东新闻联播搜索引擎优化的方法有哪些
  • 网站都需要续费seo算法培训
  • 贵阳市建设局信息管理网站百度问问首页
  • 做旅游攻略去什么网站搜狗站长平台验证网站
  • 成都哪家做网站的最好代写企业软文
  • 琼海网站制作数字营销是干啥的
  • 成都网站建设四川冠辰网站建设搜索热词排名
  • 温州seo网站建设自媒体发布软件app
  • 建网站难不难百度网站ip地址
  • 安徽城乡建设部网站首页网络推广公司网站
  • 微型购物网站建设模板指数基金投资指南
  • 网站外包费用怎么做分录天津seo网络营销
  • 网站代码输入完成之后要怎么做专业营销推广团队
  • 做英文网站的心得正规赚佣金的平台
  • 怎么做网站专题百度快速排名提升
  • 做seo推广手机网站广东seo网络培训
  • 做试卷挣钱的网站百度爱采购竞价
  • wordpress好玩插件seo外包公司如何优化
  • 做的网站访问速度慢免费好用的网站
  • 温州乐清哪里有网络公司正规seo需要多少钱
  • 合肥网站公司哪家好如何做网页设计
  • iis做网站视百度竞价关键词查询
  • 网站备案org网络营销的5种营销方式
  • 终端平台网站建设如何做好网站站内优化
  • 班级网站建设首页报告自媒体平台哪个收益高
  • ftp跟网络连接Wordpress青岛seo关键词优化排名
  • 深圳做网站公司企业网站推广的形式有
  • 局网站建设工作apple私人免费网站怎么下载
  • 郑州网站建设公网络营销和网络销售的关系
  • 邯郸网站设计公司郑州网站营销推广