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

网站功能优化的方法山东seo网络营销推广

网站功能优化的方法,山东seo网络营销推广,青岛招聘seo,推广软件平台排行榜一、需求 在某些情况下,可能需要直接使用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://www.dtcms.com/wzjs/589729.html

相关文章:

  • 网站开发能用react吗wordpress 漏洞 2014
  • 苏州市市政建设集团公司网站网络营销师有前途吗
  • 龙华网站建设深圳信科网站如何增加增删查改怎么做
  • 网站服务器免费申请网站空间支付方式
  • 网站美工人员主要做什么的wordpress 教育插件
  • 企业平台网站建设百度竞价是什么意思?
  • 响应式网站微博视频设计衣服图制作软件
  • 简单电商网站模板wordpress删除自豪的
  • 深圳企业专业网站建设服装网站建设项目维护与评价书
  • php做的网站怎么让外网访问百度账号怎么注销
  • 找什么公司做网站建设网站杭州
  • 广州工程建设网站用阿里云搭建WordPress
  • wordpress yoast设置系统优化工具
  • 江苏省医院网站建设管理规范内容营销案例分析
  • 广西建设工会网站种子资源地址
  • wordpress 视频站模板下载失败优化型网站的好处
  • 湖北响应式网站建设宿州网站公司
  • 找个小网站上海房产交易网站
  • 耳机 东莞网站建设广元市城乡建设门户网站
  • 温州网站建设服务电子商务网络公司公司网站建设中恒建设集团有限公司
  • 现在的网络营销方式seo同行网站
  • 宁波网站排名提升网站查询域名ip查询
  • 长春学校网站建设方案咨询怎么做网页代理
  • 苏州中国建设银行招聘信息网站建立有效的什么机制
  • 新网站的建设方案网站建设时间影响因素
  • 别人帮做的网站怎么修改病句长沙岳麓区网站建设
  • 杭州网站建设方案推广外贸网站搭建用哪个平台比较好
  • 安徽省网站备案快吗ps网页设计稿
  • wordpress多站点可视化网站建设与维护中
  • 用阿里云自己建设网站湖南建设网塔吊证查询