FFmpeg x264编码b帧时时间戳,帧率等总结

2023-11-12

1. 在进行FFmpeg API转码视频时,解码出来的视频帧是包含有frame->pict_type字段的,如果编码前不处理,x264会按照该类型强制编码。如果希望x264自动插入b帧编码,在编码前需要将frame->pict_type设置为AV_PICTURE_TYPE_NONE。x264编码出来后的帧类型可以通过AVCodecContext的coded_frame成员来判断。


2. 在编码含有b帧的情况下,p帧和b帧的pts和dts是不相同的。如果希望编码器自动处理帧时间戳,需要在编码前的frame中设置pts和dts为相同值,编码器会根据延迟打dts时间戳。如果编码前没有设置frame的pts和dts,则时间戳需要在编码后自己计算加上去。


3. ffmpeg转码时的编码AVCodecContext的framerate字段设置了未必是有效的(实际上是由每一帧的真实显示时间偏移决定的)。一般可以通过结合AVCodecContext的time_base字段和每一帧的时间戳来计算每一帧的实际显示时间偏移(s),比如设置time_base为{1, 50},视频帧时间戳按1递增,则每一帧的显示间隔为0.02s,一秒显示50帧,从而控制每秒钟显示的帧数。 


4. 每一帧的显示时间是由frame中的pts来决定的,该pts的time_base为AVCodecContext的time_base。在解码前需要将input stream的time_base转换为input AVCodecContext的time_base,在编码后需要将output 的AVCodecContext的time_base转换为output stream的的time_base。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FFmpeg x264编码b帧时时间戳,帧率等总结 的相关文章

  • 从视频或音频文件中删除人声

    有没有一种方法可以从音频 视频中删除人声 所以最终音乐就留在上面了 我想使用任何软件 如 adobe 等 或使用命令行 如 ffmpeg sox 来执行此操作 但我更喜欢命令行来轻松调整设置 我从事卡拉 OK 工作有一段时间了 没有办法可靠
  • Android 上的 FFmpeg

    我已经在 Android 上编译了 FFmpeg libffmpeg so 现在我必须构建一个像 RockPlayer 这样的应用程序 或者使用现有的 Android 多媒体框架来调用 FFmpeg 您有在 Android StageFri
  • pkg-config 无法在 ffmpeg 构建上找到库(linux)

    我正在尝试在 ubuntu 上为 android 构建 ffmpeg I ve cross compiled all the dependencies I need for my configuration I ve set up the
  • 使用 ffmpeg 处理流的解码数据时出错

    我正在使用以下命令 ffmpeg i video1a flv i video1b flv i video1c flv i video2a flv i video3a flv i video4a flv i video4b flv i vid
  • 使用 FFMPEG 的 HLS FLAC 流

    我使用以下命令从 FLAC 文件创建了一个 HLS 流 并输出 FLAC ffmpeg i 10 brass in pocket flac map 0 a c a 0 flac f hls hls playlist type vod mas
  • 使用 ffmpeg 进行视频标准化

    无论如何 有没有使用 ffmpeg 脚本将视频亮度标准化为其完整的动态范围 我一直在尝试用 lutyuv 这样做 ffmpeg i input mp4 vf lutyuv y val minval 255 maxval minval 输出
  • 使用 Python 从原始帧创建 MPEG4 视频文件

    我有一个原始视频帧源 我可以在 Python 中访问它 我想用它创建一个 MPEG4 视频 并带有 MP3 背景音乐 Python 中有哪些类型的工具和库可用于此类任务 最好我想要一个 API 我可以为其提供输出文件名 然后将各个帧作为 2
  • ffprobe/ffmpg 静音检测命令

    我正在研究流静音检测 它正在 ffmpeg 中执行以下命令 ffmpeg i http mystream com stream af silencedetect n 50dB d 0 5 f null 2 gt log txt 我想获得日志
  • 为 iOS6.0 ARMv7 处理器构建 FFMPEG 库

    WARNING 我刚刚被另一位用户告知 在 iOS 上使用 FFMPEG 存在一些法律问题 请在此处留下链接http multinc com 2009 08 24 compatibility Between the iphone app s
  • 使用 ffmpeg 转换真实媒体

    我有许多旧的硬壳真实媒体文件需要转换 并希望编写一个脚本来批量处理它们 我可以使用 FFMpegX 进行 Real Media gt AVI 转换 但是当我尝试使用 ffmpeg 复制转换时 它总是会出现如下错误 avi 0x10084fa
  • 在 FFmpeg 中使用 -filter_complex amerge 时混合流

    我目前遇到 ffmpeg 及其过滤器之一的问题 我正在尝试将视频的 2 个音频流合并为一个 为此我尝试了这个命令 ffmpeg i home maniaplanet Videos ManiaPlanet 2014 08 21 20 09 1
  • C# 从视频文件的一部分中提取帧

    使用 AForge ffmpeg 包装器 您可以使用 VideoFileReader 类从视频中提取帧并将其保存为位图 请参阅以下示例 提取 avi 文件的帧 https stackoverflow com questions 178256
  • 如何在 PHP 中运行 ffmpeg 命令

    我需要在 PHP 中运行 ffmpeg 命令 但是 php ffmpeg 不再支持最新版本并且已经过时 我可以知道在网络文件中运行 ffmpeg 命令的替代方法吗 PHP Javascript jQuery 我尝试exec and shel
  • 使用 ffmpeg 将 h.264 avi 容器转换为 mp4

    我想使用 ffmpeg 将 h 264 avi 容器转换为 mp4 容器 我发现这个有效 ffmpeg i myfile avi vcodec copy myfile mp4 ffmpeg version N 51169 gcedf276
  • 如何使用 ffmpeg 提取时间精确的视频片段?

    这并不是一个特别新的问题领域 但我已经尝试过那里建议的内容 但运气不佳 那么 我的故事 我有一大段 15 秒的直接来自camera mov 视频 我想从中提取特定的块 我可以通过开始时间和停止时间 以秒为单位 来识别该块 我首先尝试执行我称
  • 访问 AVFrame 的每个像素

    我需要访问 FFMPEG 的 AVFrame 对象的每个像素信息 如果是 RGB 则每个像素的每种颜色 R G 和 B 我怎样才能做到这一点 如果您已经前进到正确的框架 类似于 img convert ctx ffmpeg sws getC
  • H264 字节流到图像文件

    第一次来这里所以要温柔 我已经在给定的 H 264 字节流上工作了几个星期 一般注意事项 字节流不是来自文件 它是从外部源实时提供给我的 字节流使用 Android 的媒体编解码器进行编码 当将流写入扩展名为 H264的文件时 VLC能够正
  • FFmpeg 不适用于 android 10,直接进入 onFailure(String message) 并显示空消息

    我在我的一个项目中使用 FFmpeg 进行视频压缩 在 Android 10 Google Pixel 3a 上 对于发送执行的任何命令 它会直接进入 onFailure String message 并显示空消息 所以我在我的应用程序 g
  • 如何从 Linux 命令行获取视频文件的分辨率(宽度和高度)?

    我一直在挖掘 mplayer mencoder 和 ffmpeg 文档 但我似乎无法想出anything 我对输出格式不是特别挑剔 因为我可以使用正则表达式将其拉出来 我只是似乎无法首先获取数据 Use ffprobe https ffmp
  • ffmpeg AVFrame 到 opencv Mat 转换

    我目前正在开发一个使用 ffmpeg 解码接收到的帧的项目 解码后 我想将 AVFrame 转换为 opencv Mat 帧 以便我可以在 imShow 函数上播放它 我拥有的是字节流 我将其读入缓冲区 解码为 AVFrame f fope

随机推荐

  • Centos7 将Arm环境(海思3559A)的目录挂载到Centos7目录下

    将Arm环境 海思3559A 的目录挂载到Centos7某个目录下 将Centos7 下Qt arm编译器编译的程序放到这个目录下 然后在Arm环境 海思3559A 下执行程序 以下是具体步骤 一 编译的机器 1 etc exports文件
  • ChatGPT 4.0大升级,能替代留学中介吗?

    ChatGPT4 0发布了 在之前轰动世界版本的基础上又有了大幅度升级 根据官方介绍 它的输入可以是文字 上限2 5万字 还可以是图像 是一个超大的多模态模型 越来越多的人开始好奇这个东西到底能用来做什么 会对我们的未来产生什么样的影响 关
  • STM32 DMA 学习笔记(一)

    一 功能介绍 DMA 传输将数据从一个地址空间复制到另外一个地址空间 不需要CPU干涉 传统的数据传输 地址A gt CPU gt 地址B DMA数据传输 地址A gt 地址B 这样也就为CPU减负了 二 STM32DMA 含有两个通道 D
  • 基于微信小程序的电器维修系统设计与实现(源码+lw+部署文档+讲解等)

    前言 博主介绍 全网粉丝10W CSDN特邀作者 博客专家 CSDN新星计划导师 全栈领域优质创作者 博客之星 掘金 华为云 阿里云 InfoQ等平台优质作者 专注于Java 小程序技术领域和毕业项目实战 精彩专栏 推荐订阅 2023 20
  • 2018 10-708 (CMU) Probabilistic Graphical Models {Lecture 23} [Applications in Computer Vision (cont...

    unfinished 转载于 https www cnblogs com ecoflex p 10265304 html
  • QT 信号槽返回值

    一 方法 获取信号槽返回值的方法有三种 1 通过形参的方式 传递引用或者指针 未写例子 2 直接在信号发出位置获取返回值 下面有例子 3 通过QMetaObject invokeMethod方法 具体使用可以参考QT的帮助文档或者看下面的代
  • 【PyTorch】Chapter1:expected dtype Double but got dtype Float

    1 简介 最近跟着 Dive into DL PyTorch 一书的代码写 出现了double类型的数据和float类型的数据之间相互冲突的问题 有时需要double类型但输入的是float类型 有时又需要float类型却得到double类
  • java 码点与代码单元的区分 及 代码单元的数量和码点的数量

    java字符串由char值序列组成 char的数据类型是一个采用Unicode码点的代码单元 即 char数据类型是一个代码单元 任意Unicode字符都是一个码点 大多数常用的Unicode码点由一个char代码单元组成 辅助字符码点由两
  • c++ Unicode转UTF-8 & 宽字节转UTF8 & string转wstring & Utf8ToAnsi

    c 后台向网页传数据中文乱码 unicode的char字符串直接转UTF 8的char 网上找到有unicode转utf 8的代码 但是参数用的是wchar t的 不能直接用稍微改造一下 WideCharToMultiByte 函数需要Wi
  • Evidential Deep Learning for Open Set Action Recognition CVPR2021开放集识别论文解读

    5 Bao W Yu Q Kong Y Evidential Deep Learning for Open Set Action Recognition C Proceedings of the IEEE CVF International
  • 制作长方形表贴焊盘

    第一步 打开Pad Designer 第二步 点击File new 创建一个焊盘文件 第三步 修改小数点后几位 一般是三位 第四步 勾选Single layer 第五步 点击建构的框架 然后选择焊盘形状 Rectangle 矩形 然后填写宽
  • 4月24日云栖精选夜读

    点击订阅云栖夜读周刊 轻松筹首创了 大病救助 模式 帮助了众多病患在第一时间解決了医疗资金等问题 为了从源头解决了医疗资金问题 而在轻松筹这样全球5 5亿用户信赖的大病筹款平台的背后 是日益增长的各种数据 面对这样数据量所造成的巨大挑战 阿
  • 安装PyTorch-Lightning踩坑

    官网地址 PyTorch PyTorch Lightning 安装PyTorch Lightning 1 不能直接使用pip install pytorch lightning 否则如下图会直接卸载掉你的torch而安装cpu版本的torc
  • 这些有趣的AI人脸特效背后,腾讯云都做了什么?

    导语 深受泛娱乐场景喜爱的人脸特效产品 在不断的尝试和拓展中已挖掘出很多火爆的玩法及积累了不少优秀落地案例 本文是对腾讯云高级工程师 李凯斌老师在 云加社区沙龙online 的分享整理 以人脸特效产品 人脸融合 人脸试妆包括试唇色和美颜 人
  • 后代,后裔 descendant offspring posterity progeny

    后代 后裔 descendant offspring posterity progeny 后代 后裔 descendant offspring posterity progeny posterity descendant 和 offspri
  • xp能ping通kali,而kali却ping不了winxp的解决方案

    今天天气不错 手机响了 学妹向我提问了一个问题 她的win xp能ping通linux kali 而linux kali却ping不了winxp 这个问题起初我以为是vmware 15版本的虚拟网卡乱掉了 等到问题解决的时候发现 大错特错
  • 【ESP-IDF】ESP32利用wifi联网(STA模式)

    1 AP和STA的含义 AP模式 Access Point模式 提供无线接入服务 允许其它无线设备接入 提供数据访问 STA模式 Station模式 类似于无线终端 sta本身并不接受无线的接入 它可以连接到AP设备 2 STA模式例程 官
  • 卫星安全组网认证论文详解

    文章 卫星安全组网认证关键技术研究 文章链接 卫星安全组网认证关键技术研究 中国知网 1 摘要 对象 双层卫星网络 通常由地球同步轨道卫星 GEO 和低地球轨道卫星 LEO 组成 其中GEO在通信中起到中继器的作用 能够提供广域覆盖区域 但
  • python中的键不允许重复_在python中使用重复键字典

    在python中使用重复键字典 我有以下列表 其中包含具有不同值的重复的汽车登记号码 我想把它转换成一个字典 接受这个汽车登记号码的多个键 到目前为止 当我尝试将列表转换为字典时 它消除了其中一个键 有人可以告诉我如何使用重复的键字典列表是
  • FFmpeg x264编码b帧时时间戳,帧率等总结

    1 在进行FFmpeg API转码视频时 解码出来的视频帧是包含有frame gt pict type字段的 如果编码前不处理 x264会按照该类型强制编码 如果希望x264自动插入b帧编码 在编码前需要将frame gt pict typ