コマンドラインで実行するffmpeg.exeをpowersehllスクリプトから実行します。初回引数無しでスクリプトを実行すると、ショートカットをデスクトップに配置しますので、ショートカットアイコンに.tsファイルをドロップ&ドロップするとエンコードが開始されます。
ffmpegのオプションや各種パスを決め打ちしていますので、ご利用の際は実行環境に合わせて変更してください。
ffmpegダウンロード~インストール
- 左側のフレームの「download」をクリック
- Windowsの画像をクリック
- Windows Buildsをクリック
- Download Buildをクリック
ダウンロードしたファイルをお好みのフォルダに展開します。次にスクリプト内の変数$FFMPEGPath
に展開したffmpeg.exe
へのパスをセットしてください。
スクリプト
<#
.SYNOPSIS
.tsファイルを解像度1280x720の.mp4ファイルに変換します。
<CommonParameters> はサポートしていません
.DESCRIPTION
音声は再圧縮しません。
.EXAMPLE
.\TStoMP4-1280x720.ps1
引数なしで実行するとデスクトップにショートカットを作成します。
.EXAMPLE
.\TStoMP4-1280x720.ps1 パス.ts
デスクトップのショートカットから実行
.PARAMETER $TSPath
変換元の.tsファイルのパス
#>
$ErrorActionPreference = "STOP"
$ScriptDirectory = Split-Path $PSCommandPath -Parent
$FFMPEGPath = "C:\Users\karet\Documents\tools\ffmpeg\bin\ffmpeg.exe"
echo $Args
echo $ScriptDirectory
echo $FFMPEGPath
if (0 -eq $Args.Length) {
# インストール
$TargetPath = Join-Path ([Environment]::GetFolderPath('desktop')) "\MP4変換1280x720.lnk"
$PowershellPath = Join-Path $PSHOME "powershell.exe"
$WSH = New-Object -ComObject WScript.Shell
$Shortcut = $WSH.CreateShortcut($TargetPath)
$Shortcut.TargetPath = $PowershellPath
$Shortcut.Arguments = "-NoExit -File """ + $PSCommandPath + """"
$Shortcut.IconLocation = ($PowershellPath + ",0")
$Shortcut.Description = "ffmpegで解像度1280x720の.mp4ファイルに変換します。"
$Shortcut.WorkingDirectory = $ScriptDirectory
$Shortcut.Save()
exit
}
$TSPath = $Args[0]
if (-not(Test-Path -LiteralPath $TSPath)) {
exit
}
echo $TSPath
$MP4Path = Join-Path (Split-Path $TSPath -Parent) ([System.IO.Path]::GetFileNameWithoutExtension($TSPath) + ".mp4")
if (Test-Path -LiteralPath $MP4Path) {
Remove-Item -LiteralPath $MP4Path -Force
}
echo $MP4Path
$LogPath = Join-Path $ScriptDirectory "TStoMP4-1280x720.log"
echo $LogPath
Start-Process $FFMPEGPath -ArgumentList "-i ""${TSPath}"" -vf bwdif=1 -c:v libx264 -preset medium -crf 23 -c:a copy -bsf:a aac_adtstoasc -s 1280x720 ""${MP4Path}""" -Wait -NoNewWindow -RedirectStandardError $LogPath
初回はpowersehll.exeから引数無しで実行してください。デスクトップに「MP4変換1280×720」というショートカットアイコンが作成されます。そちらにtsファイルをドラック&ドロップすると変換が開始されます。
ffmpegオプション
-vf bwdif=1
- インタレース解除
-c:v libx264
- 映像コーデック:x264
-preset medium
- 画質のプリセット:midium
-crf 23
- 固定品質:23
-c:a copy -bsf:a aac_adtstoasc
- 音声コーディク:変換しない:AAC
-s 1280x720
- 解像度:1280×720
コメント