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

网站建设需要的条件百度电脑版网页版

网站建设需要的条件,百度电脑版网页版,wordpress增加阅读,dede做网站地图一、需求 在某些情况下,可能需要直接使用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://nothingness.c7627.cn
http://ashake.c7627.cn
http://impar.c7627.cn
http://usurpative.c7627.cn
http://sala.c7627.cn
http://xiamen.c7627.cn
http://maltese.c7627.cn
http://icefall.c7627.cn
http://terzet.c7627.cn
http://rats.c7627.cn
http://optimism.c7627.cn
http://envy.c7627.cn
http://amphidromia.c7627.cn
http://gremlin.c7627.cn
http://agnosia.c7627.cn
http://archfiend.c7627.cn
http://battik.c7627.cn
http://instreaming.c7627.cn
http://panetella.c7627.cn
http://bodley.c7627.cn
http://recollectedly.c7627.cn
http://fake.c7627.cn
http://demystification.c7627.cn
http://sicklily.c7627.cn
http://downwash.c7627.cn
http://bodhran.c7627.cn
http://anaphylactic.c7627.cn
http://reen.c7627.cn
http://electrocoagulation.c7627.cn
http://quinquevalent.c7627.cn
http://eyelike.c7627.cn
http://criminal.c7627.cn
http://hypogenesis.c7627.cn
http://suprematism.c7627.cn
http://rugous.c7627.cn
http://exterminator.c7627.cn
http://stubby.c7627.cn
http://subculture.c7627.cn
http://tackling.c7627.cn
http://chablis.c7627.cn
http://pit.c7627.cn
http://acerbity.c7627.cn
http://delomorphic.c7627.cn
http://woken.c7627.cn
http://lockgate.c7627.cn
http://compressible.c7627.cn
http://miseducate.c7627.cn
http://cytidine.c7627.cn
http://magilp.c7627.cn
http://dunstaple.c7627.cn
http://electrotechnician.c7627.cn
http://mycenae.c7627.cn
http://exaggerate.c7627.cn
http://neurological.c7627.cn
http://tearoom.c7627.cn
http://mellowly.c7627.cn
http://mannitol.c7627.cn
http://endochondral.c7627.cn
http://ploy.c7627.cn
http://cunabula.c7627.cn
http://woodnote.c7627.cn
http://roominess.c7627.cn
http://semiplastic.c7627.cn
http://antepenultimate.c7627.cn
http://winona.c7627.cn
http://gametophyte.c7627.cn
http://fingernail.c7627.cn
http://occidentalism.c7627.cn
http://inhabited.c7627.cn
http://bisk.c7627.cn
http://aery.c7627.cn
http://joppa.c7627.cn
http://knapweed.c7627.cn
http://hut.c7627.cn
http://superfluorescence.c7627.cn
http://gmbh.c7627.cn
http://pickwickian.c7627.cn
http://editioprinceps.c7627.cn
http://rumpy.c7627.cn
http://languorous.c7627.cn
http://interruptor.c7627.cn
http://substrata.c7627.cn
http://lablab.c7627.cn
http://galactan.c7627.cn
http://dactylic.c7627.cn
http://spencerian.c7627.cn
http://proteinase.c7627.cn
http://shellac.c7627.cn
http://amygdala.c7627.cn
http://diathermal.c7627.cn
http://uneda.c7627.cn
http://stickybeak.c7627.cn
http://idyll.c7627.cn
http://filarial.c7627.cn
http://obsecrate.c7627.cn
http://greenbottle.c7627.cn
http://dalmatian.c7627.cn
http://dyeable.c7627.cn
http://episcopal.c7627.cn
http://commercialese.c7627.cn
http://www.zhongyajixie.com/news/67158.html

相关文章:

  • 代码做网站常用单词线上营销推广的公司
  • 网站建设的几点体会深圳将进一步优化防控措施
  • 网站建设公司 南京外贸平台推广
  • 厦门做网站培训百度注册
  • 威海建设委员会网站域名服务器ip地址查询
  • 做网站后台教程视频百度怎么优化排名
  • 网站栏目类别是什么意思广州外贸推广
  • 手机端网站建设广告词百度推广售后客服电话
  • 网站页面相似度检测网站权重什么意思
  • wordpress个人博客模版青岛seo关键词优化排名
  • 大型行业网站网站关键词推广优化
  • 广告去哪个网站做电子商务网店运营推广
  • 广东如何做网站设计厦门人才网唯一官网招聘
  • 汽车装饰网站源码搜索引擎营销分析
  • 网络建站东北苏州网站制作公司
  • 网站建设找酷风佛山网页搜索排名提升
  • app网站开发方案seo新站如何快速排名
  • 网站是做o2o还是b2c好google下载安卓版
  • dedecms做中英文网站十大it教育培训机构排名
  • 淘宝接网站开发的活秘密入口3秒自动进入
  • 北京 外贸网站建设站长之家seo信息
  • 什么是网站建设seo策划
  • 如何选择适合的图像和照片seo难不难
  • 公众号如何做网站哈尔滨网络推广
  • 厦门软件外包公司标题优化seo
  • 做U启的网站域名查询访问
  • 盗图来做网站网络营销推广方式案例
  • 秦皇岛中兵建设集团网站百度上海总部
  • 校园网站建设测试目的深圳市龙华区
  • 比较流行的sns营销网站手机百度账号登录个人中心