gpt4 book ai didi

vb6 - 如何将 ffmpeg 转码过程信息链接到 vb6 GUI 应用程序中?

转载 作者:行者123 更新时间:2023-12-04 22:46:48 28 4
gpt4 key购买 nike

我正在使用 ffmpeg 的 vb6 gui 前端到目前为止,我所能做的就是通过 cmd.exe 调用 ffmpeg,这将在整个过程仍在运行时显示命令提示符。我认为这是查看 WinFF(另一个基于 pascal 的 ffmpeg 前端 gui)如何工作的规范。

但是当我看到另一个 GVC gui which has a progress bar and everything. 时,我惊呆了

所以基本上,我正在研究一种如何干净地隐藏整个命令提示符并将转码进度链接到我的 gui 中的进度条的方法。

所以这是我的计划,我正在考虑找到一个 win32 api 函数,我可以调用 cmd 行并隐藏它,以及 from another discussion here ,我想我必须阅读日志文件才能获取 ffmpeg 进度信息。

那么我应该为 win32 api 调用哪个函数?
有没有人知道更好/更简单的方法来完成这项工作?
谢谢

更新:

如果有人感兴趣,我会找到 nice class module on how to grab the cmd output into my vb6 app, and it's by none other than the great joacim :)

最佳答案

我在 OSX 上为 Java 写了同样的东西。极简逻辑:

  • 您需要在生成 ffmpeg 输出时读取它。
  • 逐行解析输出(CR 和 LF)
  • 找到“持续时间”行,将时间值存储为整数中的秒数。 “持续时间: 00:03:18 .48,开始:0.000000,比特率:274 kb/s”(CRLF 终止)
  • 从那时起,解析 CR 并查找时间(以秒为单位)完成值。 “帧= 2816 fps=667 q=11.0 Lsize= 13036kB 时间= 187.66 比特率= 569.1kbits/s”(CR 终止,无 LF)
  • 做除法(时间/持续时间),你有一个百分比!

  • 我不相信让 ffmpeg 写入日志文件会起作用。至少在 *nix 上,ffmpeg 将此输出写入 std err,并且您需要捕获的状态行没有换行符,因此会覆盖先前的状态行。这是您可以在自己的代码中克服的问题。

    抱歉,对 VB6 部分无能为力,但会假设直接从您退出的进程中捕获输出。

    关于vb6 - 如何将 ffmpeg 转码过程信息链接到 vb6 GUI 应用程序中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/867383/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com