gpt4 book ai didi

PHP - 主动刷新 exec 函数结果?

转载 作者:行者123 更新时间:2023-12-04 22:58:13 25 4
gpt4 key购买 nike

我对这种使用 PHP 的方式没有经验,但我喜欢创建一些变量,例如 $test,我们知道它是 exec("ffmpeg ..."),ffmpeg 确实会主动更改其结果,而 PHP 只是等待在命令完成之前,是否有一个选项,我会执行命令并通过刷新页面来获得结果的事件形式,因为我想制作一个进度条和其他东西,但这对我来说现在似乎是不可能的.我已经尝试过基本的东西,但正如我所见,我不知道该怎么做,有什么建议可以做到吗?请不要关闭这个,实际上我真的很难做这些事情,而且每次人们都在这里用我的问题拒绝我

最佳答案

由于您的问题如此广泛,我只能给您一个广泛的答案,显示您问题的 ffmpeg 部分的基本步骤(我也不知道 PHP)。它应该足以让您能够将其实现到您的脚本中。
使用 -progress您可以使用 -progress 中的 ffmpeg 全局选项将进度信息连续输出到文本文件:

ffmpeg -progress progress.txt -i input.avi output.mp4
documentation :

-progress url (global)
Send program-friendly progress information to url.

Progress information is written approximately every second and atthe end of the encoding process. It is made of key=value lines.A key consists of only alphanumeric characters. The last key of asequence of progress information is always progress.


示例输出
进度文件的示例摘录:
frame=106
fps=23.33
stream_0_0_q=28.0
bitrate= 0.2kbits/s
total_size=48
out_time_us=2080078
out_time_ms=2080078
out_time=00:00:02.080078
dup_frames=0
drop_frames=0
speed=0.458x
progress=continue
请注意,这仅在您知道输出的最终持续时间或帧数时才有用。如果您知道输入和输出的持续时间或帧数大致相同,那么使用它应该没有问题。但当然这取决于你的命令。
获取持续时间或帧
一旦您知道持续时间或帧数,您就可以使用 frameout_time_ms 来确定查询间隔的进度。
您可以使用 ffprobe 来确定输入信息:
  • Fetch frame count with ffprobe
  • How to get video duration in seconds?

  • 另见:
  • FFmpeg Wiki: PHP
  • 关于PHP - 主动刷新 exec 函数结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64105247/

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