What's the equivalent of cmd for powershell with ffmpeg

前端 未结 1 1858
失恋的感觉
失恋的感觉 2021-01-03 16:47

from https://www.poftut.com/ffmpeg-command-tutorial-examples-video-audio/

ffmpeg -i jellyfish-3-mbps-hd-h264.mkv

works in cmd but same on Pow

相关标签:
1条回答
  • 2021-01-03 17:00

    As currently shown in your question, the command would work just fine in PowerShell.

    # OK - executable name isn't quoted.
    ffmpeg -i jellyfish-3-mbps-hd-h264.mkv
    

    However, if you quote the executable path, the problem surfaces.

    # FAILS, due to SYNTAX ERROR, because the path is (double)-quoted.
    PS> "C:\Program Files\ffmpeg\bin\ffmpeg" -i jellyfish-3-mbps-hd-h264.mkv
    Unexpected token '-i' in expression or statement.
    

    For syntactic reasons, PowerShell requires &, the call operator, to invoke executables whose paths are quoted and/or contain variable references or subexpressions.

    # OK - use of &, the call operator, required because of the quoted path.
    & "C:\Program Files\ffmpeg\bin\ffmpeg" -i jellyfish-3-mbps-hd-h264.mkv
    

    Or, via an environment variable:

    # OK - use of &, the call operator, required because of the variable reference.
    # (Double-quoting is optional in this case.)
    & $env:ProgramFiles\ffmpeg\bin\ffmpeg -i jellyfish-3-mbps-hd-h264.mkv
    

    If you don't want to have to think about when & is actually required, you can simply always use it.

    The syntactic need for & stems from PowerShell having two fundamental parsing modes and is explained in detail in this answer.

    0 讨论(0)
提交回复
热议问题