スクリプトまたはプログラムで?一度に1つずつプロンプトを実行するよりも良い方法があるかどうか疑問に思っている変換する必要があるファイルがたくさんあります
OS ウィンドウズ Vista/XP
スクリプトまたはプログラムで?一度に1つずつプロンプトを実行するよりも良い方法があるかどうか疑問に思っている変換する必要があるファイルがたくさんあります
OS ウィンドウズ Vista/XP
ハンドブレーキは、M4Vにエンコードするための優れたユーティリティです。バッチモードで実行するように設定することもできます。私はかつてこの方法を使用してLostのシーズン全体をエンコードしました。コマンドラインまたはGUIを介して実行できますが、どちらの方法でも、ファイルのバッチでのエンコードをサポートします。
m4v に変換できる (コマンドライン対応の) プログラムが既にあり、プロセスを自動化したいだけだと仮定すると、ディレクトリとそのサブディレクトリ内のすべてのファイルをループするように変更できるバッチ ファイルを次に示します。変換プログラムを呼び出します。書かれているように、Handbrake を使用して .iso、.img、または VIDEO_TS 形式として抽出された DVD を、XBox 360 で消費するために mp4 に変換します。変更はかなり簡単なはずです。
encode.batなどとして保存するだけです。
@echo off
rem Encode DVD for XBOX360 using Handbrake
rem Anything in %ENCODED_DIR% will not be encoded because everything in there
rem is assumed to have been encoded already.
rem
rem Encodes VIDEO_TS, iso, and img .. renames img to iso
SETLOCAL ENABLEDELAYEDEXPANSION
SET FILE_TYPES=VIDEO_TS *.iso *.img
SET ENCODED_DIR=[ENCODED]
SET CONVERT_PROG=[HANDBRAKE]\HandBrakeCLI.exe
SET CONVERT_ARG_INPUT=-i
SET CONVERT_ARG_OUTPUT=-o
SET CONVERT_ARG_SETTINGS=--longest --preset="Xbox 360" --native-language=eng --subtitle-scan
IF NOT EXIST "%ENCODED_DIR%" mkdir "%ENCODED_DIR%"
FOR /F "usebackq delims==" %%i IN (`dir %FILE_TYPES% /s /d /b ^| find /V "%ENCODED_DIR%"`) DO (
rem trim the trailing slash and we have our output name minus the extension
SET INPUT_FILENAME=%%i
SET OUTPUT_FILENAME=%%~pi
SET BASE_NAME=!OUTPUT_FILENAME:~0,-1!
SET OUTPUT_FILENAME=!BASE_NAME!.mp4
rem rename .img to .iso so Handbrake recognizes it as a proper input format
IF /I "%%~xi"==".img" (
SET INPUT_FILENAME=%%~pi%%~ni.iso
ren "%%i" "%%~ni.iso"
)
start "Converting" /BELOWNORMAL /WAIT "%CONVERT_PROG%" %CONVERT_ARG_INPUT% "!INPUT_FILENAME!" %CONVERT_ARG_OUTPUT% "!OUTPUT_FILENAME!" %CONVERT_ARG_SETTINGS%
echo ERRORLEVEL AFTER CONVERT %ERRORLEVEL% >> last_errorlevel.txt
)
ENDLOCAL
したがって、これらの変数を変更する必要があります。
SET FILE_TYPES=VIDEO_TS *.iso *.img
SET ENCODED_DIR=[ENCODED]
SET CONVERT_PROG=[HANDBRAKE]\HandBrakeCLI.exe
SET CONVERT_ARG_INPUT=-i
SET CONVERT_ARG_OUTPUT=-o
SET CONVERT_ARG_SETTINGS=--longest --preset="Xbox 360" --native-language=eng --subtitle-
FILE_TYPESは、コンバーター プログラムの入力形式として使用するものです。 ENCODED_DIRは、スキップするディレクトリです (既にエンコードしたファイルを保存したり、別の場所に保存したりするために使用できます)。 CONVERT_PROGはコンバータのディレクトリです。この例では、[HANDBRAKE] というサブディレクトリにあり、HandBrakeCLI.exe という名前になっています。***CONVERT_ARG_**** は、コンバーター プログラムを呼び出すために使用する設定です。
変換したいものをスクリプトのサブディレクトリに置くだけです。たとえば、スクリプトを変更しないと、次のディレクトリ構造に依存します。
encode_stuff\encode.bat
encode_stuff\[ENCODED]\<stuff to skip>
encode_stuff\[HANDBRAKE]\HandBrakeCLI.exe
encode_stuff\dvd1\VIDEO_TS\<movie junk>
encode_stuff\dvd2\my_dvd2.iso
次にスクリプトを実行すると、dvd1.mp4 と my_dvd2.mp4 が作成されます。
したがって、バッチ言語を使用した cmd シェル プログラミングについてあまり知らなくても、どのように機能するかについてのこの説明に基づいて、それを変更する方法を理解できることを願っています。この回答が役に立たない場合は、元の質問を更新して、元の形式、m4v でターゲットにしている再生デバイス、および変換を実行できるプログラムが既にあるかどうかを含める必要があります。