Я пытаюсь извлечь длительность видео (.MP4) с помощью FFProbe и требую, чтобы результат был выведен в файл. 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 имеет некоторые проблемы с обработкой пробелы в имени файла, даже если я окружаю их двойными кавычками. Также имена файлов UN C не поддерживаются cmd, но ffprobe обрабатывает их в порядке. Все еще работаю над проблемой, спасибо.
Хорошо, наконец-то все заработало. Используя cmd / c, я обнаружил, что если вы сначала изменили каталог ffprobe, а затем выполнили ffprobe, исключается неправильная обработка двойных кавычек:
cmd / c cd C: \ Program Files \ FFMpeg \ Bin & ffprobe {paramters}> output.txt