gpt4 book ai didi

vb6 - FFProbe 不会将结果输出到文件

转载 作者:行者123 更新时间:2023-12-05 03:55:37 27 4
gpt4 key购买 nike

我正在尝试使用 FFProbe 提取视频 (.MP4) 的持续时间,并要求将结果输出到文件中。当我使用命令提示符输入文件时,FFProbe 工作完美并创建包含持续时间信息的文件,但是,当我在我的 VB6 程序中放置相同的语句时,FFProbe 不创建输出文件......问题是什么? ?

这是在命令提示符下运行的语句:

C:\Program Files\FFMpeg\bin>ffprobe -i InputVideo.mp4 -v quiet -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 > c:\temp\Output.txt

这是我的程序中不起作用的代码片段:

Dim Txt As String
Dim AppId As Long
Dim AppHnd As Long
Dim AppRet As Long

Txt = "C:\Program Files\FFMpeg\bin>ffprobe" & _
" -i " & """" & PhotoPathFileName & """" & _
" -v quiet -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 >
""C:\temp\Output.txt"""

AppId = Shell(Txt, vbHide)
AppHnd = OpenProcess(SYNCHRONIZE, 0, AppId)
If AppHnd <> 0 Then
AppRet = WaitForSingleObject(AppHnd, WaitInfinite)
End If

我们正在根据“wqw”关于使用 cmd/c 的建议取得进展,我现在将输出重定向到一个文件,但并非始终如此。

之所以可行,是因为视频文件名没有空格:

cmd/k "C:\Program Files\FFMpeg\bin\ffprobe.exe"-v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 -i\\DLINK\Volume_1\Movies\Arrow.mp4 > c:\temp\Duration.txt

这不起作用:

cmd/k "C:\Program Files\FFMpeg\bin\ffprobe.exe"-v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 -i\\DLINK\Volume_1\Movies\Generation Earth Part 1.mp4 > c:\temp\Duration.txt

看起来 cmd/c 在处理文件名中的空格时存在一些问题,即使我用双引号将它们括起来也是如此。 cmd 也不支持 UNC 文件名,但 ffprobe 可以正常处理它们。仍在解决这个问题,谢谢。


好的,我终于成功了。使用cmd/c我发现如果先切换到ffprobe的目录,再执行ffprobe,就可以避免双引号的误操作:

cmd/c cd C:\Program Files\FFMpeg\Bin & ffprobe {参数} > output.txt

最佳答案

Linux 中的 ffprobe 对我来说有点类似的问题。我发现 ffprobe 不写入标准输出而是标准错误。所以,使用“2>”语法来将标准错误捕获到文件中。

# ffprobe test.mkv 2>target.txt
# cat target.txt
Input #0, matroska,webm, from 'test.mkv':
Metadata:
COMPATIBLE_BRANDS: iso6avc1mp41
...

关于vb6 - FFProbe 不会将结果输出到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60104132/

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