【问题标题】:How to start ffprobe with Windows PowerShell如何使用 Windows PowerShell 启动 ffprobe
【发布时间】:2014-04-07 16:31:54
【问题描述】:

我正在使用 Zeranoes FFmpeg Builds for Windows,我可以在不安装任何东西的情况下启动 ff-prompt。但是如何使用 Windows PowerShell 启动 ff-prompt.bat?我尝试了一些类似Invoke-Expression 或更改$env:Path 的方法,但似乎没有任何效果,因为我得到的只是消息

"C:\Users\Administrator>ECHO 关闭

找不到bin\ffmpeg.exe。”

是否可以使用 PowerShell 启动 ff-prompt?每个建议/解决方案都非常受欢迎。

我的目标是在这里找到一个像这样工作的解决方案: http://spreadys.wordpress.com/2012/12/03/ffprobe-and-windows-powershell/

但我想为我的所有剪辑自动执行此操作,这就是为什么我需要使用 powershell 启动 ffprobe。


ECHO OFF
REM FF Prompt 1.1
REM Open a command prompt to run ffmpeg/ffplay/ffprobe
REM Copyright (C) 2013  Kyle Schwarz

TITLE FF Prompt

IF NOT EXIST bin\ffmpeg.exe (
  CLS
  ECHO bin\ffmpeg.exe could not be found.
  GOTO:error
)

CD bin || GOTO:error
PROMPT $G
CLS
ffmpeg -version
SET PATH=%CD%;%PATH%
ECHO.
ECHO For help run: ffmpeg -h
ECHO For formats run: ffmpeg -formats ^| more
ECHO For codecs run: ffmpeg -codecs ^| more
ECHO.
ECHO Current directory is now: "%CD%"
ECHO The bin directory has been added to PATH
ECHO.

CMD /F:ON /Q /K
GOTO:EOF

:error
  ECHO.
  ECHO Press any key to exit.
  PAUSE >nul
  GOTO:EOF

好的,这次我尝试了一些不同的东西:

$env:Path = ';C:\Users\Administrator\bin\'
$title = "A_Day_for_Cake_and_Accidents"
Start-Process ff-prompt.bat -ArgumentList "ffprobe -show_streams -select_streams v -print_format xml -count_frames C:\Users\Administrator\Desktop\dcp_bearbeitet\$title\$title.mov > C:\Users\Administrator\Desktop\dcp_bearbeitet\$title\totalframes.xml"

这会创建一个名为“totalframes.xml”的文件,但没有所需的信息,我得到的唯一信息是:

C:\Users\Administrator>ECHO 关闭 ffmpeg 版本 N-60959-g669043d 使用 gcc 4.8.2 (GCC) 于 2014 年 2 月 27 日 22:01:58 构建 配置: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable -libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore- amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable- libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-zlib libavutil 52. 66.100 / 52. 66.100 libavcodec 55. 52.102 / 55. 52.102 libavformat 55. 33.100 / 55. 33.100 libav 设备 55. 10.100 / 55. 10.100 libavfilter 4. 2.100 / 4. 2.100 libswscale 2. 5.101 / 2. 5.101 libswresample 0. 18.100 / 0. 18.100 libpostproc 52. 3.100 / 52. 3.100 如需帮助,请运行:ffmpeg -h 对于格式运行:ffmpeg -formats |更多的 对于编解码器运行:ffmpeg -codecs |更多的 当前目录现在是:“C:\Users\Administrator\bin” bin 目录已添加到 PATH

所以基本上控制台会弹出,写入这个标准文本并且不使用我在 -Argument-List 中声明的命令。我不知道为什么它会忽略我的大部分命令,除了将所有内容写入 XML 文件。

【问题讨论】:

  • 为什么需要用PowerShell启动批处理文件?
  • 您应该能够像任何其他应用程序或脚本一样调用批处理文件。只需给出名称(如果不在$Env:PATH 中,请提供路径)。通常,您永远不需要将Invoke-Expression 用于此类事情。错误消息表明批处理文件编写不佳,但无法从其他目录运行,而不是它自己的目录。
  • bat文件的内容是什么,你把$ENV:path设置成什么?
  • @alroc 因为我需要处理来自 ffprobe 的信息。我有超过 100 个剪辑需要用 ffprobe 读取,我认为使用 PowerShell 更容易做到这一点,所以如果我有一个可以自动启动 ffprobe 并为我提供所有剪辑的正确信息的功能,我会非常快乐。
  • 我试过这个:$env:Path =+ ";C:\Users\Administrator\ffmpeg\bin\ffmpeg.exe" 并尝试Start-Process C:\Users\Administrator\ffmpeg\ff-prompt.bat,但这也不起作用。如果我只是从 PowerShell 开始做这件事,我会是一个快乐的人。

标签: windows powershell ffmpeg ffprobe


【解决方案1】:

根据我在 SVN 存储库中找到的 ff-prompt.bat 和您的不同 cmets,您应该在 C:\Users\Administrator\ffmpeg 目录中启动此 .bat 文件。

【讨论】:

  • 发生了一些事情,但不是我所期望的。 PowerShell 不再要求 exe,我看到一个小窗口弹出一秒钟然后它就消失了。我的 ff-prompt 所在的路径如下所示:C:\Users\Administrator和我的 bin 文件夹位于同一路径中。我想我错过了一些东西,因为如果 ff-prompt 在一秒钟后关闭,我将无法使用它。我的第一次尝试是这样的:$env:Path = ';C:\Users\Administrator\bin\'Start-Process ff-prompt.bat
【解决方案2】:

您可以按如下方式从 PowerShell 启动 ff-prompt.bat。首先,将工作目录设置为包含 ff-prompt.bat 的目录,例如c:\用户\管理员\ffmpeg。其次,键入以下内容并按 Enter:.\ff-prompt.bat。我使用从 Zeranoe 下载的文件集对此进行了测试,CMD 会话打开并显示如下:

ffmpeg 版本 N-61143-g64e4bd7 使用 gcc 4.8.2 (GCC) 于 2014 年 3 月 7 日 00:01:08 构建 配置: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore -amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspee x --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libv orbis --enable-libvpx --enable-libwavpack --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-z 库 libavutil 52. 66.101 / 52. 66.101 libavcodec 55. 52.102 / 55. 52.102 libavformat 55. 33.101 / 55. 33.101 libav 设备 55. 11.100 / 55. 11.100 libavfilter 4. 3.100 / 4. 3.100 libswscale 2. 5.101 / 2. 5.101 libswresample 0. 18.100 / 0. 18.100 libpostproc 52. 3.100 / 52. 3.100 如需帮助,请运行:ffmpeg -h 对于格式运行:ffmpeg -formats |更多的 对于编解码器运行:ffmpeg -codecs |更多的 当前目录现在是:“C:\Users\Andy\Downloads\ffmpeg-20140307-git-64e4bd7-win32-static\ffmpeg-20140307-git-64e4bd7- win32-静态\bin" bin 目录已添加到 PATH >

【讨论】:

  • 上述答案将重新使用 PowerShell 控制台窗口作为 CMD 提示符。如果要在单独的窗口中启动 CMD,请使用 start-process .\ff-prompt.bat
猜你喜欢
  • 2023-04-09
  • 1970-01-01
  • 2013-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多