ffmpeg concat 产生 DTS 乱序错误

2024-02-08

我正在关注有关如何操作的文档连接 https://trac.ffmpeg.org/wiki/Concatenate文件与 ffmpeg 但在这个过程中我看到很多警告,输出视频在第一个块后停止,但音频继续播放。

这是我用来连接文件的命令:

ffmpeg -f concat -i mylist.txt -c copy output.webm

这是我看到的警告:

[concat @ 0x7fee11822a00] DTS 0 < 2500 out of order
[webm @ 0x7fee11011000] Non-monotonous DTS in output stream 0:0; previous: 2500, current: 0; changing to 2500. This may result in incorrect timestamps in the output file.

视频文件来自外部源。我当前的解决方案是将每个文件分别重新编码为 mp4,然后将它们连接在一起,然后将整个文件重新编码回 webm。当然,这需要一些重要的时间,但我找不到其他解决方案。


FFMPEG 连接的所有视频都应具有匹配的编码、fps 等,否则您将得到意外的结果。 我想,如果您的视频来自不同的来源,那么如果不重新编码就很难通过。我必须查看很多解决方案,有效的解决方案会建议将您的视频转换为相同的中间格式,然后运行您的 concat 命令。

尽管这种方法确实有效,但它并不能解释出了什么问题。Gyan 的评论回答了这个问题 https://stackoverflow.com/questions/31691943/ffmpeg-concat-poduces-dts-out-of-order-errors#comment57572244_34918815.

首先,使用 ffprobe 测试您的输入文件:ffprobe video1.mp4

你会得到这样的输出。

视频1.mp4:

Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 1556 kb/s, 24 fps, 24 tbr, 12288 tbn, 48 tbc (default)

视频2.mp4:

Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 6454 kb/s, 24 fps, 24 tbr, 90k tbn, 48 tbc (default)

尽管我的 FPS 和其他参数相同,但我得到了 3.1 fps 的 58 秒视频,而不是预期的 8 秒 @24fps 视频。这里重要的参数是时基tbn,即12288 tbn vs 90k tbn。 连接不会重新编码输入视频,仅使用第一个输入视频的时基,从而弄乱所有后续视频。

更改第一个文件的时基:

ffmpeg -i video1.mp4 -video_track_timescale 90000 video1_fixed.mp4

现在连接产生正确的结果:

( echo file 'video2.mp4' & echo file 'video1_fixed.mp4' ) | ffmpeg -y -protocol_whitelist file,pipe -f concat -safe 0 -i pipe: -c copy output.mp4
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ffmpeg concat 产生 DTS 乱序错误 的相关文章

  • 同时从多个流中捕获、最佳方法以及如何减少 CPU 使用率

    我目前正在编写一个应用程序 该应用程序将捕获大量 RTSP 流 在我的例子中为 12 个 并将其显示在 QT 小部件上 当我超过大约 6 7 个流时 问题就会出现 CPU 使用率激增并且出现明显的卡顿 我认为它不是 QT 绘制函数的原因是因
  • Bash 脚本:自动为 mpeg-dash 进行 ffmpeg 编码

    我正在编写一个 bash 文件来创建视频编码和串联 以供 dash 实时流媒体使用 基本上 它读取输入视频文件夹 将所有视频编码为三种分辨率格式 然后将它们连接起来创建三个适应集 DIAGRAM 该脚本检查 fps 一致性 如果输入不是 1
  • Ffmpeg 无法正确转换为 ogg [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我正在使用 ffmpeg 在我的网站上转换音频和视频 Ffmpeg 可以正确转换为其他格式 如 mp3 mp4 等 但无法正确转换为 ogg 虽然 f
  • 使用 Coldfusion 的 CFFILE 标签监控 FFMpeg 的进度日志

    我想学习如何使用 ColdFusion 中的 CFFILE 标签来读取文本文件的内容 就我而言 该文本文件是 FFMpeg 在对媒体文件进行转码时生成的进度日志 我想编写一个 ColdFusion 脚本 该脚本将定期轮询进度日志 直到日志表
  • 转换为 JPEG 时 HEIC 切片损坏

    我在将 HEIC 图像转换为 jpeg 时遇到问题 HEIC 文件是使用运行最新 iOS 公共测试版的 iPhone 拍摄的图像 我正在使用诺基亚提供的库 https github com nokiatech heif 要解析文件并从 HE
  • 在 HTML5 中设置视频高度

    也许这是一个简单的问题 但它真的让我发疯 我只想设置 HTML5 视频的高度和宽度 我正在使用这段代码
  • Node.js - 将数据缓冲到 Ffmpeg

    我使用 Node js 和 Ffmpeg 来创建动画 因为我试图避免第三方 avi mp4 解析器 所以我决定将动画输出为原始 rgb24 数据文件 然后使用一些程序将其转换为 mp4 文件 我发现 Ffmpeg 是免费且开源的 它完全可以
  • 在 Windows Phone 8 中以编程方式下载媒体文件

    我们的应用程序是基于视频 音频的应用程序 我们已将所有媒体上传到 Windows Azure 上 但需要方便用户点播下载音视频文件 以便在本地播放 所以我需要以编程方式下载音频 视频文件并将其保存在IsolatedStorage中 我们有每
  • Html 视频播放器播放声音但不播放视频

    我正在制作网页 并尝试插入视频 视频播放器加载正常 您可以按播放 但只播放音频 而不播放视频 在 Chrome 中预览时 在 firefox 中查看时可以正常工作 我的代码如下
  • 加载 HTML 格式的大型视频文件

    这是我的问题 我想播放存储在 S3 存储桶中的大型视频文件 3 6Gb 但该文件似乎太大 并且加载 30 秒后页面崩溃 这是我播放视频的代码 var video document getElementById video const med
  • 有哪些技术可用于程序化视频编辑?

    Problem 用户应该能够从其系统上运行的应用程序 胖客户端 上传高分辨率视频剪辑 在这个应用程序中 我需要一个能够将视频转换为低分辨率版本的框架或库 另一方面 我需要能够立即从图像构建视频的东西 并以看起来像视频的方式对它们进行动画处理
  • FFMPEG:将 YUV 数据转储到 AVFrame 结构中

    我正在尝试转储YUV420数据进入AVFrameFFMPEG 的结构 从下面的链接 http ffmpeg org doxygen trunk structAVFrame html http ffmpeg org doxygen trunk
  • FFMPEG 帧到 DirectX 表面

    给定一个指向 FFMPEG 的 AVFrame 的指针avcodec decode video 函数如何将图像复制到 DirectX 表面 假设我有一个指向适当大小的 DX X8R8G8B8 表面的指针 Thanks John 您可以使用
  • 运行时高压缩的 AS3 视频编码(H.264?)

    我需要在运行时将 AS3 中的视频图像数据 比如说显示对象 压缩为高压缩的字节数组 帧速率只需在 5 左右 但 1024x768 视频需要达到 使用 JPG 或 PNG 编码器可提供更高的 KB s 有没有开源方法可以在运行时对 as3 中
  • iPhone 上的全屏视频播放器是否有“onClose”事件?

    我在网站上使用 html5 视频播放器 当用户开始播放时 播放器进入全屏模式并播放视频 视频结束后 我看到ended事件并通过关闭视频播放器myvideo webkitExitFullScreen 现在 当玩家实际获得时我需要另一个事件cl
  • FFmpeg 缩放不是平滑中心(而是锯齿形)

    我尝试执行基本操作zoompan https www ffmpeg org ffmpeg all html zoompan with FFmpeg 我有一个输入图像 png 1280x720 并从中创建一个 8 秒的视频 mp4 320x1
  • 为 Android 编译时显示 FFMPEG 错误

    我正在尝试将 ffmpeg 添加到我的 android 项目中 我使用的是 ubuntu 14 04 操作系统 我正在关注此链接 Link https software intel com en us android blogs 2013
  • swscaler 警告:使用了已弃用的像素格式

    我想先对视频帧执行颜色空间转换 然后使用以下代码将其转换为 opengl 纹理 struct SwsContext pSwsCtx sws getCachedContext NULL width height codec gt pix fm
  • 如何使用 C# 桌面应用程序以 MPEG 或 AVI 文件录制网络摄像头视频

    我正在开发一个桌面应用程序 它需要我连接到网络摄像头并以 MPEG AVI MP4 和 WMV 格式录制 保存 视频并刻录到 CD DVD 中 该应用程序采用 Win Forms 形式 我只是在寻找免费或开源解决方案或控件 我已经使用 Af
  • 如何从 ffmpeg 中打开的文件获取流信息?

    我正在尝试使用 ffmpeg 读取视频文件 我有与其旧版本相对应的工作代码 并开始尝试升级到最新的构建版本 将所有这些已弃用的函数替换为其实际的类似函数 但是我遇到了问题 似乎没有检索到任何流 并且视频负载停止在轨道中 这是我正在使用的代码

随机推荐

  • 如何从 VBA 创建单独的 CSV 文件?

    我需要将一些结果输出为 csv 文件 稍后由另一个进程解析 为了产生这些结果 我有一本巨大的工作簿 其中包含我需要的所有宏和函数 是否可以从 VBA 创建 单独的 csv 文件 是否可以使用 VBA 功能来写入它 而不仅仅是以 原始文本 方
  • Android 和客户端证书

    我已经寻找这个问题几个星期了 似乎无法在任何地方找到答案 我正在尝试为 Android 执行以下操作 此代码来自我编写的 C 应用程序 但我正在将其移植到 Android Web 端点需要将证书附加到相互身份验证的请求中才能进行 Web 服
  • PyCrypto : AssertionError("PID 检查失败。fork() 后必须重新初始化 RNG。提示:尝试 Random.atfork()")

    我正在创建执行不同任务的各种流程 其中之一 而且只有一个 具有创建 PyCrypto 对象的安全模块 所以我的程序启动 创建各种进程 处理消息的进程使用安全模块进行解密 我收到以下错误 firstSymKeybin self cipher
  • 为什么 Node.js 的 fs.readFile() 返回缓冲区而不是字符串?

    我正在尝试阅读以下内容test txt 位于 Javascript 源代码的同一文件夹中 并使用以下代码显示它 var fs require fs fs readFile test txt function err data if err
  • iPhone 上的 OpenGL 渐变填充看起来有条纹

    当我使用 OpenGL 绘制渐变填充时 输出看起来是条纹的 即它仅使用大约四分之一的可能颜色进行渲染 所有颜色都会出现在渲染缓冲区中 但不会出现在实际输出中 我正在运行 iOS4 的 iPhone 3G 上进行开发 有任何想法吗 Peter
  • 如何在 R 中永久更改 .libPaths() ?

    每当我使用以下命令更改库路径顺序时 libPaths 功能 如果我重新启动 R 它会恢复为默认值 如何永久更改此设置 我正在Linux计算集群上工作 我没有管理员权限 所以我想将我的本地库永久添加到R中 每次启动 R 时我都必须这样做 li
  • 如何捕获“远程服务器返回错误:(403) 禁止”的异常。

    我收到 远程服务器返回错误 403 禁止 错误并想捕获这个异常 我猜想 HttpException 块应该捕获它 如下所示 但事实并非如此 catch HttpException wex if wex GetHttpCode ToStrin
  • post-commit 挂钩在 svn commit 上产生错误,但在命令行上手动运行时有效

    我目前正在尝试为我的颠覆存储库设置提交后挂钩以发送电子邮件通知 我正在使用颠覆1 7 8 我的提交后挂钩脚本如下 bin sh REPOS 1 REV 2 REPOS hooks mailer py commit REPOS REV REP
  • 显示向量寄存器的约定

    是否有显示 写入大型寄存器的约定 例如英特尔 AVX 指令集中提供的寄存器 例如 如果最低有效字节为 1 最高有效字节为 20 其他位置为 0xmm寄存器 对于按字节显示是以下首选 小端 1 0 0 0 0 20 或者这是首选 20 0 0
  • 实体框架 4.1 - 如何“强制”EF 转到数据库而不是使用图形?

    这是场景 我有一个网站 在单个 HTTP 请求 HTTP POST 中 我需要执行以下操作 抓住一个物体 比方说 标签 保存其他一些对象 假设 问题 获取 标签 的新副本 重定向到另一个页面 该页面需要 标签 的新副本 在幕后 2 涉及影响
  • 支持 IAccesible 接口以在文本编辑器中移动插入符号的正确解决方案是什么?

    我想从头开始实现一个支持 IAccessible 接口的文本编辑器 我正在使用 MFC 和 Win32 API 当记事本等标准文本编辑器中的插入符号位置发生变化时 讲述人 JAWS 等客户端工具将发音与插入符号移动相对应的字母 单词或行 我
  • 在 Entity Framework Core 中编写实体 POCO 类的正确方法是什么?

    EF Core 默认具有 代码优先心态 即它应该以代码优先的方式使用 尽管支持数据库优先方法 但它被描述为只不过是对现有数据库进行逆向工程 创建它的代码优先表示 我的意思是 手动 代码 代码优先 创建的模型 POCO 类 和从数据库生成的模
  • 通过 ssh 转发 SIGTERM

    我希望 ssh 将 SIGTERM 信号转发到远程命令 ssh root localhost root print signal py 获取ssh的PID ps aux grep print signal 杀死匹配的 ssh 进程 kill
  • 如何在用户默认中保存对象列表?

    我的目标是 struct Order Codable var item id String var quantity Int 0 var image String var name String var desc String 函数的类别是
  • 如何在matlab中绘制地圈?

    如何在matlab中绘制地球圈 By Geosphere我的意思是球体上离散化点的方式 例如 3Ds Max 中的 Geosphere On the image below it is shown Sphere on the left an
  • 我如何检索通过java play中的post传递的数据

    这是我的代码 我需要检索 POST 中发送的数据 play db jpa Transactional public static Result registered String fullname String email String p
  • 重新编码鼠标 mids 对象

    我有一个mids对象创建自mice 我想重新编码一些估算变量并保留mids目的 我知道我可以转换mids反对 长 complete 但我想保留mids对象 因为它有一些额外的用途 这是一个使用的示例nhanes数据集 跑步mice 为变量创
  • 如何将 div 高度设置为所选打印纸张的 100%?

    如何将高度设置为所选打印纸张的 100 CSS width 100 height 100 margin auto margin top 0px important border 1px solid 当我在 Google Chrome 中打印
  • 所有本机修订的数据库在哪里?

    我已经阅读了所有 SO 问题 编码恐怖文章 并用 Google 搜索了我的大脑 寻找修订控制数据的最佳方法 它们都可以工作 并且都有基于用例等的适当实现 我真正想知道的是为什么没有编写一个数据库来原生支持数据级别的修改 让我感到困惑的是 A
  • ffmpeg concat 产生 DTS 乱序错误

    我正在关注有关如何操作的文档连接 https trac ffmpeg org wiki Concatenate文件与 ffmpeg 但在这个过程中我看到很多警告 输出视频在第一个块后停止 但音频继续播放 这是我用来连接文件的命令 ffmpe