2025-04-18

以 ffmpeg 批次降低影片 bitrate

運動攝影機錄影擋預設流量 (bitrate) 很高,但其實我覺得看不太出來高低流量畫質的差異
所以根據網路查的一些建議用 ffmpeg 批次處理降低流量
先用 
ffprobe.exe 取得影片屬性,再根據影片屬性進行處理

以下 Powershell 中,VideoRotation 是影片方向的資訊,在降低流量的處理中實際上不需要
這裡只是當作筆記用,未來有需要的時候才找得到
 (找很久才找到這個語法)

#設定要降低的 bitrate 值 Start
$ProcessMethod = @();
$ProcessMethod += New-Object -TypeName PSObject -Property @{
     Width = 2688;
     FrameRate = 30;
     BitRate = 16;
};
$ProcessMethod += New-Object -TypeName PSObject -Property @{
     Width = 2688;
     FrameRate = 60;
     BitRate = 24;
};
$ProcessMethod += New-Object -TypeName PSObject -Property @{
     Width = 3840;
     FrameRate = 30;
     BitRate = 45;
};
$ProcessMethod += New-Object -TypeName PSObject -Property @{
     Width = 3840;
     FrameRate = 60;
     BitRate = 55;
};
$ProcessMethod += New-Object -TypeName PSObject -Property @{
     Width = 3840;
     FrameRate = 120;
     BitRate = 65;
};
#設定要降低的 bitrate 值End

360 全景影片加入 Metadata Tag

全景影片用 VLC 等媒體播放軟體播放時若預設不以全景模式播放代表缺少 Metadata Tag
解決辦法如下,如果檔案量少,可以直接用 GUI 程式處理,檔案多的話跑批次比較省事

GUI & Source: google spatial-media
https://github.com/google/spatial-media/releases

Command 需要 python 2.7 (新版不行)
根據影片類型可能要加入 StereoMode 參數,請自行參考程式說明
先轉轉看確認參數再跑批次

Set-Location -Path "D:\Software\spatial-media-2.1\";
$Files = (Get-ChildItem -Path 'D:\Video' -File)
foreach ($File in $Files) {
& D:\Python27\python.exe spatialmedia -i $File.FullName ($File.FullName -Replace $File.BaseName,($File.BaseName + '_360 Tag Added'));
#if (($File.FullName -Replace $File.BaseName,($File.BaseName + '_360 Tag Added')) -eq $True) {
# remove-item -path $File.FullName -force;
#};

};

技術細節可 Google 關鍵字: Inject 360 Metadata

Shrink MS SQL LDF File

ALTER DATABASE [DBName] SET RECOVERY SIMPLE;
dbcc shrinkfile(DBName_log, 1);
ALTER DATABASE [DBName] SET RECOVERY FULL;

參考資料:
https://sdwh.dev/posts/2021/03/SQL-Server-LDF-Truncate-Shrink/

Windows TCP Port Forwarding

古時候 (2000年左右) Windows 98 時代對於網路不太熟悉
有接觸到一個小程式叫做 PortMagicV130 (網路魔術師)
可以做到 Port Forwarding 的功能,也就是將電腦作為跳板的用途

現在只要下指令就可以做到了:
netsh interface portproxy add v4tov4 listenport=80 listenaddress=192.168.1.10 connectport=80 connectaddress=1.1.1.1
紅色的部分 是本機電腦要聽的 Port 與  IP
綠色的部分 是要轉去目標的 Port 與  IP

用這個指令可以查目前的設定:
netsh interface portproxy show all
這樣刪除
netsh interface portproxy delete v4tov4 listenport=80 listenaddress=192.168.1.10

netsh interface portproxy delete listenport=80 listenaddress=192.168.1.10
參考資料: