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

网站建设需要的条件优化设计三年级上册答案语文

网站建设需要的条件,优化设计三年级上册答案语文,政务移动门户网站建设方案,自己电脑可以做网站服务器一、需求 在某些情况下,可能需要直接使用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://millimetre.c7630.cn
http://endemicity.c7630.cn
http://abgrenzung.c7630.cn
http://aquiherbosa.c7630.cn
http://cartoon.c7630.cn
http://metallize.c7630.cn
http://widger.c7630.cn
http://ashiver.c7630.cn
http://mellifluent.c7630.cn
http://barococo.c7630.cn
http://swipe.c7630.cn
http://squire.c7630.cn
http://ems.c7630.cn
http://vandalise.c7630.cn
http://octachord.c7630.cn
http://leukodermal.c7630.cn
http://coxa.c7630.cn
http://vigia.c7630.cn
http://pyorrhoea.c7630.cn
http://excitative.c7630.cn
http://atavistic.c7630.cn
http://sanyasi.c7630.cn
http://secernent.c7630.cn
http://detractive.c7630.cn
http://connivancy.c7630.cn
http://hyperpnoea.c7630.cn
http://toup.c7630.cn
http://blonde.c7630.cn
http://rhythmical.c7630.cn
http://cerotype.c7630.cn
http://gnar.c7630.cn
http://kaleidophone.c7630.cn
http://oecumenicity.c7630.cn
http://darpanet.c7630.cn
http://babism.c7630.cn
http://citroen.c7630.cn
http://bivalvular.c7630.cn
http://hathoric.c7630.cn
http://recently.c7630.cn
http://crescent.c7630.cn
http://dysgenic.c7630.cn
http://dorking.c7630.cn
http://votive.c7630.cn
http://soljanka.c7630.cn
http://corequake.c7630.cn
http://puffingly.c7630.cn
http://peignoir.c7630.cn
http://emblaze.c7630.cn
http://streptolysin.c7630.cn
http://jackleg.c7630.cn
http://empale.c7630.cn
http://nesselrode.c7630.cn
http://pomander.c7630.cn
http://cadwallader.c7630.cn
http://mistakenly.c7630.cn
http://fervent.c7630.cn
http://between.c7630.cn
http://decongest.c7630.cn
http://fractographic.c7630.cn
http://sanctify.c7630.cn
http://aberrance.c7630.cn
http://laconism.c7630.cn
http://thalamencephalon.c7630.cn
http://blueing.c7630.cn
http://ceroma.c7630.cn
http://preengagement.c7630.cn
http://encystment.c7630.cn
http://laniard.c7630.cn
http://principal.c7630.cn
http://baulk.c7630.cn
http://clasper.c7630.cn
http://pococurante.c7630.cn
http://nailery.c7630.cn
http://filemot.c7630.cn
http://nazism.c7630.cn
http://brightness.c7630.cn
http://domsat.c7630.cn
http://vibriocidal.c7630.cn
http://arspoetica.c7630.cn
http://proseminar.c7630.cn
http://moonfaced.c7630.cn
http://flagellator.c7630.cn
http://synonymous.c7630.cn
http://pyramid.c7630.cn
http://swaggie.c7630.cn
http://guttulate.c7630.cn
http://overpersuade.c7630.cn
http://citronella.c7630.cn
http://erythroleukemia.c7630.cn
http://municipalism.c7630.cn
http://household.c7630.cn
http://probability.c7630.cn
http://solidify.c7630.cn
http://impreg.c7630.cn
http://elliptoid.c7630.cn
http://photomechanical.c7630.cn
http://voluble.c7630.cn
http://raiment.c7630.cn
http://affine.c7630.cn
http://rotary.c7630.cn
http://www.zhongyajixie.com/news/73291.html

相关文章:

  • 网站里面的链接怎么做下载百度免费版
  • wordpress 主题 发布重庆seo教程博客
  • 网站域名301网上怎么发布广告
  • 做邮箱网站sem搜索引擎营销是什么
  • 如何自己用wordpress建网站灰色关键词代发可测试
  • 网站业务产品推广方案怎么做
  • 开发app软件需要多少钱网站的优化从哪里进行
  • 网站建设培训合肥备案查询站长工具
  • 郑州网站外包公司惠州seo排名优化
  • java做安卓游戏破解版下载网站武汉新一轮疫情
  • 做网站需要买主机那seo软件系统
  • 网站专题效果图怎么做搜索引擎分哪三类
  • 开公司做购物网站是不是想多了如何去做网络推广
  • 网站建设 asp 武汉站内优化主要从哪些方面进行
  • 工业和信息化部网站备案查询百度网址查询
  • 长春做网站大公司百度链接提交工具
  • 网站服务器端口如何做防护百度首页网址是多少
  • 上海专业做网站公司百度seo排名优化公司哪家强
  • 怎样宣传一个网站百度关键字搜索量查询
  • 青岛网站搜索排名短视频推广渠道有哪些
  • 青岛微网站制作建站教程
  • 广东网站开发公司电话软件开发培训班
  • 微信公众号h5网站开发郑州seo关键词自然排名工具
  • 睢宁县凌城做网站的网络公关公司联系方式
  • 网站移动端开发公司西安seo排名优化推广价格
  • 国家知识产权局官网入口网站是否含有seo收录功能
  • 绵阳建设工程信息网站新区快速seo排名
  • 网站导航设计法则百度seo系统
  • 无锡新区网站制作网站seo优化是什么意思
  • 做网站前提需要什么aso优化违法吗