はじめに
地上波を録画したtsファイルが溜まりに貯まって、
HDDを圧迫するようになってきたので
定期的に、動画の変換を行っています。
色々なサイトを巡って変換を試していますが、
動画の変換後に変換した動画を確認してみると
音ズレをしているものが多数あっため忘れない為に
自分用のメモとして記載することにしました。
AviUtlの準備
変換するに当たって使用しているツールは「AviUtl」です。
「ココ」からダウンロードができます。
様々な機能を使う為には、少しずつ追加する必要があります。
19/12/07現在だと最新は「aviutl110.zip」です。
レイヤーをつかって編集を行いたい場合は
「拡張編集Plugin」が必要になります。
「exedit92.zip」をDLして解凍した中身を
「aviutl110」のフォルダにコピーしてください。

コピーすることで拡張編集がつかえるようになります。
細かく使いたい場合は使うと良いでしょう。

しかし、このままではtsファイルは読み込むことが出来ないので
下記のように表示されてしまいます。

読み込めるようにするために「L-SMASH Works」の導入を行います。
「ココ」へアクセスして、ダウンロードの箇所から
「L-SMASH Works r935 release2」のリンクを押してダウンロードをします。
ダウンロードが終わったら解凍して、
「lwmuxer.auf」「lwcolor.auc」「lwdumper.auf」「lwinput.aui」
この4つのファイルをコピーして
AviUtlのあるフォルダに新規で「Plugins」というフォルダを作って
その中にコピーをしてください。


コピーが終わったらAviUtlを再起動します。
「ファイル」
> 「環境設定」
> 「入力プラグインの設定」
> 「L-SMASH Works File Readerの設定」
が表示されていれば導入は完了しています。

tsファイルを読み込むと正常に読み込むことが出来るようになります。

AviUtlの準備は一旦ここで完了となります。
動画をCFRに変換する
AviUtlではVFRの動画は利用はできますが、
音ズレを起こしてしまうため、CFRに変換する必要があります。
入力プラグイン側で直接編集が行えるようですが、
僕の環境ではそれを使っても音ズレが解消されなかったため、
録画したtsファイルを一定にするように「FFmpeg」を利用しました。
「ココ」からFFmpegをダウンロードします。
緑の「Download」のボタンを押して、
左下にある自分の環境にあったOSのボタンを押します。
Windowsであれば「Windows builds by …」の
リンクが出てきますのでそのリンクを押します。
その後、青色の「Download Build」の
ボタンを押してダウンロードをします。
ダウンロードが終わったら「bin」フォルダにある
「ffmpeg.exe」を任意の場所にコピーします。
ちなみにシステムにある環境変数に登録することで
どの場所からでもffmpegを使えるようになります。
環境変数が面倒な方は読み飛ばしても問題は無いです。
この置き方は一例ですが、「ffmpeg.exe」を
Cドライブの「Program Files」に新規で「ffmpeg」という
フォルダを作ってその中にコピーをしています。

コピーをしたら、システムを開きます。
「windows」+「Pause」キーでシステムが開きます。
「システムの詳細設定」を押下します。
「詳細設定」タブを押下して「環境変数」ボタンを押下します。
システム環境変数の方の「Path」を選んで「編集」を押下します。

「新規」を押下して
「C:\Program Files\ffmpeg」を記載して
「OK」を押下します。

動作確認のために、コマンドプロンプトを起動します。
「windows」+「R」キーで「ファイル名を指定して実行」が出るので
「cmd」と入力して「OK」を押下します。

コマンドプロンプトに「ffmpeg -version」と入力して
「Enter」を押して下記のようになれば設定は完了しています。

バッチファイルを作ってあるので「.bat」ファイルがありますが、
バッチファイルを作っておくと楽です。
変換するときにcmdを開かずに
「.bat」ファイルにドラッグ&ドロップするだけで変換が開始されるので!


バッチファイルは「ココ」を参考にさせて頂いています。
改良出来ればいいんですが
あまり理解していないのでほぼそのまんまです。
元々は複数ある動画ファイルを
結合するためのバッチファイルです。
ブロックノイズが気になったのでバッチファイルを一部追加しました。
この表記は「ココ」を参考にさせて頂いております。
@echo off
%~d1
cd "%~p1"
type nul > ./files.txt
SET FILEMEI=%~n1
:start
IF "%~1"=="" GOTO ffmpegstart
IF "%~x1" == ".ts" GOTO add
IF "%~x1" == ".TS" GOTO add
GOTO next
:add
echo file '%~1' >> ./files.txt
:next
SHIFT
GOTO start
:ffmpegstart
ffmpeg.exe -safe 0 -f concat -i %~p1files.txt -c:a copy -map 0:v -map 0:a -r 29.97 -b 10000k -vf pp=dr/fq,hqdn3d=6.00:4.50:6.00:4.50,bwdif=0 %~p1_"%FILEMEI%".ts
変更箇所について
・10,11行目の拡張子
「mp4」から「ts」に変更をしています。
他の拡張子で行いたい場合はこの箇所を変更すればOKです。
・22行目のffmpegの変換設定
「-c:v h264_nvenc」は変換時にnvencを使う設定をしています。
グラボが無い場合はcpuでの変換をすることになるので、
この箇所は削除してください。
「-r 29.97」はフレームレートの設定です。
フレームレートを固定にするために記載しています。
フレームレートを上げたい場合はこの箇所を変更してください。
「-b 5000k」はビットレートの指定です。
画質を上げたい場合は変更してください。
録画したtsファイルが約20000kなので1/4の設定をしています。
ここについては後にAviUtlで変換するので
大きくても問題ないと思います。
「-vf bwdif=0」はインターレースの解除の設定をしています。
tsファイルを映像と音声で分離させる
tsファイルの変換が完了したら、「DGIndex」と言うソフトを使って
動画ファイルと音声ファイルを別々にします。
「ココ」へアクセスして「Download DGMPGDec 1.5.8」の
リンクを押下してダウンロードします。
ダウンロードが終わったらzipで圧縮されているので解凍を行います。
中に「DGIndex.exe」があるので起動をします。
起動したら、先ほどffmpegで変換したファイルを
ドラッグ&ドロップします。
リストに追加されるので「OK」ボタンを押下します。

tsファイルが読み込まれて映像が表示されます。

「File」
> 「Save Project and Demux Video」の順に押下します。

何も変更せずに「保存」を押下します。

分離処理が始まります。

処理終了後にファイルのあるフォルダに
「m2v」「d2v」「aac」の3ファイルが作成されます。
映像ファイルは「m2v」、
音声ファイルは「aac」ファイル、
「d2v」ファイルはDGIndexのプロジェクトファイルなので不要です。
「aac」ファイルには「DELAY -115ms.aac」等の表記がありますが、
これは動画と音声がズレてしまうものを
修正するための値になるのでリネームは行わないでください。
音声を無劣化編集するために変換をする
続いて音声を無劣化編集するために「FakeAacWav」をダウンロードします。
「ココ」から「up1009.zip」を探してダウンロードをしてください。
zipで圧縮されているので解凍を行います。
中に「FAW.exe」があるので起動をします。
先ほど取り出した「aac」ファイルをドラッグ&ドロップします。

続いて変換ボタンを押下します。
変換が始まるのでしばらく待ちます。

変換終了後に「DELAY 0ms_aac.wav」ファイルが作成されます。

AviUtlでx264で変換する
AviUtlでx264で変換するために
「x264guiEx」又は「NVEnc」を導入します。
「x264guiEx」はCPU変換、「NVEnc」はGPU変換になります。
下記の導入手順は「x264guiEx」になりますが「NVEnc」も同様です。
「ココ」へアクセスして右メニューにある
「x264guiEx 2.xx」のリンクを押下します。
OneDriveに飛ぶので「x264guiEx_2.61v2.zip」を
右クリックしてダウンロードします。
解凍して中にある「auo_setup.exe」を起動します。
起動したら「AviUtl.exe」のあるフォルダを指定します。
指定したら「次へ」を押下します。

必要なファイルがダウンロードされます。

必要なファイルがダウンロードされ
インストールが完了すると下記画面のようになります。
「終了」を押下します。

AviUtlで動画の編集を行います。
AviUtlを管理者権限で起動して、
「ファイル」 > 「開く」を押下して、
ファイルの種類を「AllFile」に変更して、「m2v」ファイルを開きます。
続いて「ファイル」 > 「音声読み込み」から「wav」ファイルを読み込みます。

読み込みが完了すると映像ファイルと音声の波形が表示されます。

続いて動画の不要箇所のカットを行います。
①は1フレーム戻るボタン
②は1フレーム進むボタン
③は動画の始点を指定するボタン
④は動画の終点を指定するボタン
③と④のボタンを使用していらない箇所をカットします。

不要部分の開始部分で③を押下し、
必要部分の1つ前のフレームで④を押下すると
下記のように青い箇所が短くなります。
これが現在選択されている箇所です。

この部分は不要なので右クリックから「選択範囲の削除」を押下します。

不要な箇所が削除されます。
この処理を必要な回数分だけ繰り返します。
1つの動画にまとめたくない場合は、
必要な部分だけ選択すれば問題ありません。

この動画の場合は後半部分が必要ないのでさらにカットします。
カットしたことで総フレーム数が「9221」から「8023」まで減りました。

続いて動画の変換を行います。
「ファイル」
> 「プラグイン出力」 > 「拡張 x264 出力(GUI) Ex」を押下します。

「ビデオ圧縮」を押下します。

変換する動画の各種設定を行います。
今回の場合はビットレートを指定して
変換を行うため自動マルチパスにしています。
1080pの動画であれば5000kbpsあれば問題ないと思われます。
ffmpegで変化する前は20000kpbsですが
気になる方はffmpegの変換から試行錯誤してみてください。
上限と下限のビットレートを指定して、
目標ビットレートの箇所を「-1」自動にします。
プリセットは各自で調整してください。
速度を遅くすれば遅くするほど高画質になりますが、
かなり時間がかかります。
アスペクト比は地デジの1080pを変換するときは
「SAR比を指定(デフォルト)」にして「4:3」にしてください。
この指定をしないと動画再生時に比率が「16:9」になりません。
また、地デジの480pを変換するときは「32:27」になります。
音声のエンコーダを「FakeAacWav(FAW)」に変更して、
「fawcl.exe」を指定します。
これを必ずしないと音声が死にます。
それで何個か動画をダメにしてしまった僕がいます…
「fawcl.exe」は「FakeAacWav」のフォルダの中にあります。
モードは「FAW解除(full size)」にしてください。
設定が完了したら「OK」を押下します。

ファイル名を記載して「保存」を押下します。

変換が始まるのでしばらく待ちます。

問題が起きなければ正常に終了します。

ちなみに変換した動画はこんな感じになりました。

ts動画との1フレームだけの比較ですが、そんなに変わりはありません。
上が変換後のmp4、下がオリジナルのtsです。


以上、ts動画の変換についてでした~!
ちなみに、tsファイルを直接読み込んで変換することも可能です。
その場合は音声のエンコードは
「qaac」等他のものに変更するのをお忘れなく。
他にも様々なプラグインがあるのでAviUtlは良いですよ~!



コメント