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

秦皇岛的网站建设公司wordpress超级留言版

秦皇岛的网站建设公司,wordpress超级留言版,深圳大鹏新区葵涌街道,内容营销策略分析1. 概述 FFmpeg 在处理视频旋转信息方面经历了重要的架构变化。本文档详细对比了 FFmpeg 3.4 和 7.0.2 在封装#xff08;muxing#xff09;和解封装#xff08;demuxing#xff09;视频旋转信息时的差异#xff0c;并提供兼容性解决方案。文档内容由Claude Sonnet 4辅助撰…1. 概述 FFmpeg 在处理视频旋转信息方面经历了重要的架构变化。本文档详细对比了 FFmpeg 3.4 和 7.0.2 在封装muxing和解封装demuxing视频旋转信息时的差异并提供兼容性解决方案。文档内容由Claude Sonnet 4辅助撰写如有疏漏还请斧正。 FFmpeg 3.4支持 metadata 和 side data 双重机制FFmpeg 7.0.2主要依赖 side data 机制弱化 metadata 支持 2. 旋转信息存储机制存储方式FFmpeg 3.4FFmpeg 7.0.2说明Stream Metadata✅ 读写支持❌ 仅读取兼容性stream-metadata[rotate]Side Data✅ 读写支持✅ 主要方式AV_PKT_DATA_DISPLAYMATRIX容器原生格式✅ 支持✅ 支持MP4 tkhd atom 等// Metadata 格式字符串 stream-metadata[rotate] 90 // 90度旋转// Side Data 格式3x3 变换矩阵 int32_t displaymatrix[9] {cos(θ), -sin(θ), 0,sin(θ), cos(θ), 0,0, 0, 1 };3. 解封装Demuxing对比 3.1 FFmpeg 3.4 解封装行为 // FFmpeg 3.4 读取流程 void ffmpeg34_demux_rotation() {// 1. 从容器读取 displaymatrixuint8_t *displaymatrix read_container_displaymatrix();// 2. 设置 side dataav_stream_add_side_data(stream, AV_PKT_DATA_DISPLAYMATRIX, displaymatrix, size);// 3. 同时设置 metadata便于应用程序使用if (displaymatrix) {double rotation av_display_rotation_get((int32_t*)displaymatrix);av_dict_set(stream-metadata, rotate, av_asprintf(%.0f, -rotation), AV_DICT_DONT_STRDUP_VAL);} }// 应用程序读取推荐方式 int getRotation_v34(AVStream *stream) {// 方式1从 metadata 读取简单AVDictionaryEntry *t av_dict_get(stream-metadata, rotate, NULL, 0);if (t) return atoi(t-value);// 方式2从 side data 读取精确uint8_t *displaymatrix av_stream_get_side_data(stream, AV_PKT_DATA_DISPLAYMATRIX, NULL);if (displaymatrix) {return (int)(-av_display_rotation_get((int32_t*)displaymatrix));}return 0; }3.2 FFmpeg 7.0.2 解封装行为 // FFmpeg 7.0.2 读取流程 void ffmpeg70_demux_rotation() {// 1. 从容器读取 displaymatrixuint8_t *displaymatrix read_container_displaymatrix();// 2. 只设置 side dataav_packet_side_data_add(stream-codecpar-coded_side_data,stream-codecpar-nb_coded_side_data,AV_PKT_DATA_DISPLAYMATRIX, displaymatrix, size, 0);// 3. 不再自动设置 metadata// stream-metadata[rotate] 为空 }// 应用程序读取新方式 int getRotation_v70(AVStream *stream) {// 只能从 side data 读取AVPacketSideData *side_data av_packet_side_data_get(stream-codecpar-coded_side_data,stream-codecpar-nb_coded_side_data,AV_PKT_DATA_DISPLAYMATRIX);if (side_data side_data-size 9 * sizeof(int32_t)) {double rotation av_display_rotation_get((int32_t*)side_data-data);return (int)(-rotation);}return 0; }4. 封装Muxing对比 4.1 FFmpeg 3.4 封装行为 // FFmpeg 3.4 支持多种设置方式// 方式1通过 metadata 设置推荐 int setRotation_v34_metadata(AVStream *stream, int degrees) {char rotation_str[16];snprintf(rotation_str, sizeof(rotation_str), %d, degrees);// 设置 metadatamuxer 会自动转换为 displaymatrixreturn av_dict_set(stream-metadata, rotate, rotation_str, 0); }// 方式2直接设置 side data int setRotation_v34_sidedata(AVStream *stream, int degrees) {uint8_t *displaymatrix av_stream_new_side_data(stream, AV_PKT_DATA_DISPLAYMATRIX, 9 * sizeof(int32_t));if (!displaymatrix) return -1;av_display_rotation_set((int32_t*)displaymatrix, -(double)degrees);return 0; }4.2 FFmpeg 7.0.2 封装行为 // FFmpeg 7.0.2 主要通过 side data 设置int setRotation_v70(AVStream *stream, int degrees) {// metadata 方式可能无效必须使用 side dataint32_t *displaymatrix (int32_t*)av_packet_side_data_new(stream-codecpar-coded_side_data,stream-codecpar-nb_coded_side_data,AV_PKT_DATA_DISPLAYMATRIX,9 * sizeof(int32_t),0);if (!displaymatrix) return -1;av_display_rotation_set(displaymatrix, -(double)degrees);return 0; }5. 总结 FFmpeg 在处理视频旋转信息方面的变化反映了其向更标准化、更精确方向的演进 FFmpeg 3.4过渡期版本同时支持 metadata 和 side dataFFmpeg 7.0.2现代化版本主要依赖标准化的 side data 开发者应该 在新项目中优先使用 side data API保持对旧版本的兼容性支持进行充分的跨版本测试关注 FFmpeg 的未来发展趋势 这种变化虽然增加了开发复杂度但提供了更好的标准兼容性和更精确的旋转信息处理能力。
http://www.zqtcl.cn/news/601804/

相关文章:

  • 安全的网站制作公司百度app最新版本
  • 中小企业建站平台耐克网站建设策划方案
  • wordpress 后台加入链接后_网站显示是标签_不是链接wms智能仓储管理系统
  • 网站建设需要什么硬件和软件有哪些中考网络应用服务平台
  • 为什么网站权重会掉房地产开发网站建设
  • 大连seo整站优化酷播wordpress视频插件
  • 好的网页设计网站学编程要什么学历
  • 做网站公司电话福建城乡建设网站查询
  • 郑州做网站哪个公司好做二手市场类型的网站名字
  • 网站建设与维护里面的个人简历选择网站建设公司好
  • 济南浩辰网站建设公司怎么样wordpress 3.8 问题
  • 柳州正规网站制作公司网站ww正能量
  • 网站seo优化工具网站推广策略方法
  • 企业网站建设知名wordpress 自定义php
  • 用php做的网站有哪些全能网站建设
  • 网站显示正在建设中wordpress 排行榜 页面
  • 手机管理网站网站打开速度优化
  • 做微网站需要什么做的比较好的美食网站有哪些
  • 五金商城网站建设注意wordpress虚拟空
  • 成都工程网站建设网站界面设计的优点
  • 网站建设里的知识找别人做公司网站第一步做什么
  • 婚纱摄影网站模板之家专业seo网站优化公司
  • 商丘市住房和城乡建设局网站广西网站建设timkee
  • php网站开发是做什么的网站策划总结
  • 站长工具seo推广秒收录WordPress注册插件中文
  • 目前个人网站做地最好是哪几家做汽配网站需要多少钱
  • php做网站多少钱网络营销推广方案3篇
  • 浙江坤宇建设有限公司 网站省直部门门户网站建设
  • 直播类网站怎么做上海市建设质量协会网站
  • 筑巢做网站怎么样网站设计接单