好吧,看起來我還有一個問題要問,這與我最後一個問題有關,可以在這裏找到:How to start ffprobe with Windows PowerShell。在那裏,我問了如何使用Windows PowerShell啓動ffprobe,並在嘗試了一些我已經獲得它的東西之後,可以說,在再次關閉之前開始了一秒。 我試了一下,在PowerShell中下面的命令:爲什麼PowerShell在執行我的命令之前關閉ff-prompt.bat
$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"
的結果,這是很奇怪的,是隻能從ff-prompt.bat
標準文本的xml文件,它看起來像這樣:
C:\ Users \ Administrator> ECHO OFF ffmpeg版本N-60959-g669043d 2014年2月27日22:01:58使用gcc 4.8.2(GCC) 配置:--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 - 使能的zlib libavutil 52. 66.100/52 66.100 libavcodec的55 52.102/52.102 55. 了libavformat 55. 33.100/33.100 55. libavdevice 55. 10.100/10.100 55. libavfilter 4. 2.100/2.100 4 libswscale 2.101/2. 5.101 libswresamp le 0. 18.100/0.18.100 libpostproc 52. 3.100/52. 3.100 幫助運行:ffmpeg -h 對於運行格式:ffmpeg -formats |更多 對於編解碼器運行:ffmpeg -codecs |現在越來越 當前目錄是:「C:\用戶\管理\ BIN」 bin目錄已被添加到PATH
我首先想到的是,它並沒有在所有的工作,但後來我想知道爲什麼當它不工作時我得到一個XML文件。在PowerShell關閉ff-prompt.bat
而未執行一半命令之前,PowerShell可能會執行ff-prompt.bat
一秒鐘。有人知道爲什麼在執行我所有的命令之前ff-prompt被關閉了嗎?
編輯:那麼,我想是應該直接執行它,但事實上,我得到錯誤的shitload:
$title = "A_Day_for_Cake_and_Accidents"
$Cmd = ‘C:\Users\Administrator\ffmpeg\bin\ffprobe.exe’
$Arg1 = ’ffprobe '
$Arg2 = ‘-show_streams ’
$Arg3 = ‘-select_streams v '
$Arg4 = ‘-print_format xml '
$Arg5 = ‘-count_frames '
$Arg6 = "C:\Users\Administrator\Desktop\dcp_bearbeitet\$title\$title.mov >"
$Arg7 = " C:\Users\Administrator\Desktop\dcp_bearbeitet\$title\totalframes.xml"
& $Cmd $Arg1 $Arg2 $Arg3 $Arg4 $Arg5 $Arg6 $Arg7
錯誤消息(S)我得到:
「ffprobe。 EXE 無法設置值「-select_streams v」選項「show_streams」:選項找不到」
我現在面臨的問題是,-show_streams
沒有得到一個值,所以也許這就是爲什麼他使用的下一個參數爲價值,有什麼我可以做的嗎?
爲什麼你使用bat文件呢?你會發現直接從powershell調用ffprobe要容易得多。並且指定.exe的完整路徑而不是即時修改PATH也會更容易。 – arco444
@ arco444這聽起來很不錯,但我該怎麼做?我必須安裝一些軟件還是需要其他命令?問題是我有一堆電影,我必須從XML文件中提取總幀數,我認爲這會更容易,如果我可以自動做到這一點,沒有太多的努力,這就是爲什麼我使用這個參數'$ title'爲我所有的視頻。 – sebastian
您需要了解的有關在此處啓動外部命令的所有信息:http://edgylogic.com/blog/powershell-and-external-commands-done-right/ – andyb