我從去年開始就有在拍遊戲劇情影片並上傳YT,並且在此之後就常常用到Premiere Pro和Adobe Media Encoder(分別用於剪片與輸出)。但是後者少了一個我覺得滿基本的功能:轉檔完成後自動關閉電腦。因為有時候我會在轉檔時把電腦放著,然後就去做別的事情;有時候離開可能超過一小時,等到回來發現電腦就閒置在那邊,而且影片已經輸出完成了。我覺得這樣子反而有點浪費電,所以就想說找看看有沒有辦法可以讓它轉檔完成之後,順便把電腦關機。
這個問題我先前也有去找過有無方法可達成,但是沒有找到。直到今天,我在Adobe支援論壇上找到了一個老外分享的批次指令。
這是我找到的貼文連結,有興趣且英文看得懂的話可以去看看(發文者:MarcoMeswara):https://community.adobe.com/t5/adobe-media-encoder/can-we-get-adobe-media-encoder-to-shutdown-the-pc-after-encoding-done/td-p/4458475?page=1
整個使用方法很簡單,只要將以下指令內容存成bat或cmd檔。在Adobe Media Encoder輸出影片時執行這個批次檔,就可以實作轉檔完成自動關機的功能了。
以下附上整個批次指令的內容(有需要可以複製回去,以記事本存成bat或cmd檔):
(以下開始)
@echo off
echo.
date /t
time /t
echo.
:StartMonitoring
echo.
echo.
echo.
color 0f
echo Start monitoring Adobe Media Encoding Process
echo Check every 60 secs via KeepMonitoring
ping 127.0.0.1 -n 60 > nul
Goto Check
:KeepMonitoring
echo.
echo.
echo.
color 0f
echo Continue Monitoring Adobe Media Encoding Process - every 60s
ping 127.0.0.1 -n 60 > nul
Goto Check
:Check
echo.
echo.
echo.
color 0e
echo Checking If Encoding Process Over ?
echo.
echo.
color 0a
tasklist | find /i "PProHeadless.exe"
IF ERRORLEVEL 1 GOTO AutoPowerOFF
IF ERRORLEVEL 0 echo. && echo Encoding Still In Progress && GOTO KeepMonitoring
:AutoPowerOFF
echo.
echo.
echo.
color 0c
echo Process PProHeadless.exe does not exist anymore
echo Assume Encoding DONE
echo PC Poweroff Initiated
echo.
echo.
echo ShutDown PC After 60 sec
shutdown /s /t 60
:END
(指令結束)
我大概看了一下整個指令,雖然看起來覺得很長很複雜,但其實很簡單。我在這裡稍微解說一下它的運作流程:
- 開始執行,首先顯示幕前日期與時間
- 顯示開始監視的訊息,然後以ping本機的方式等候一分鐘的時間,然後使用tasklist與find指令尋找一個名為PProHeadless.exe的處理程序
這個處理程序就是Adobe Media Encoder在輸出Premiere Pro影片時會使用的處理程序
若發現這個處理程序在執行,就再等候一分鐘,然後再次偵測此程序是否存在 - 重複步驟2.,直到找不到該程序(代表轉檔已經完成),之後執行Windows內建的shutdown指令,於1分鐘後關機
由於整個指令會每隔一分鐘搜尋一次處理程序是否存在,因此可能會發生轉檔結束時,批次指令正處於等待偵測狀態,導致電腦不會在轉檔完成時「隨即」啟動關機程序。這倒是沒關係,因為我要的結果就是讓它在轉檔完成之後能夠順便關機,有沒有馬上關並不重要。
如果大家有使用Premiere Pro剪片、使用Adobe Media Encoder輸出影片,而且需要讓後者在輸出完成時順便自動關機的話,這個方法非常值得你一試。