令和でも大活躍するフリーソフト「携帯動画変換君」で映像＆音声を自在にエンコードしよう！

みなさん、携帯動画変換君って知ってますか？

http://mobilehackerz.jp/contents/3GPConv

インターネット老人会のみなさまはご存知の方も多いかなと思います。
2000年台を席巻した動画変換フリーソフトなのですが、ガラケー・音楽プレイヤー・ゲーム機などの携帯型マルチメディアデバイスが台頭しはじめた時代にクリーンヒットしたプロダクトでした。


# 当時は何が嬉しかったのか？
ガラケー（注・ガラパゴスケータイ＝フィーチャーフォン）やiPod、PSPなどのモバイル機器で移動中にドラマやアニメを見たい！というニーズが出てきた時代でした。

DVDなどの動画データをPCに取り込み、モバイル機器で再生するには以下の課題をクリアする必要がありました。
- 機器ごとに再生できる動画フォーマットに細かい仕様制限がある
- 機器のストレージ容量がかなり小さい（数百MBの時代）

このためにエンコーダーを用いて動画フォーマットや品質を調整する必要があったのですが、動画・音声の様々なバリエーションを安定して捌けるソフトウェアは限られており、あっても有償製品（TMPGEncなど）が多かったのです。


# 変換君の何がすごいのか？
携帯動画変換君はFFmpegというグローバルのフリーウェアを主軸に、様々な動画・音声エンコーダーやデコーダーを直感的に使えるWindows用GUIフロントエンド＋シンプルな設定ファイル（Transcording.ini）で扱えるようにしてくれた画期的なソフトです。

https://ffmpeg.org/

なのでエンコーダーの外部ソフトがアップデートされたら当該モジュールだけ置き換えればいいし、設定を細かく弄りたくなったら設定ファイルを自分でカスタマイズして複数パターン保存しておくことができます。


# 令和のいま、これの何が嬉しいのか？
現在では動画視聴を取り巻く環境は大きく変わりました。
- スマホのように単体でPCと遜色なく様々なフォーマットの動画を再生できる機器が主流
- そもそも通信キャリアのサービスが大容量になり、動画をローカルに保存せずともストリーミングで移動中に必要な部分だけ観られるようになった

これによってローカルで頑張って動画変換する機会は大幅に減りましたが、今でもたまに重宝するときがあります。
- 電波環境のよくない新幹線や飛行機でじっくり動画を観たい
- 節約のためパケット通信料を極力使わずに動画を観たい
- 昔のSDカードにあった動画がうまく再生できないので変換かけたい

前提としてWindows環境でのみ動作します。
昨年、Windows 10で動くことは確認しましたが、最新版のWindows 11でも動くかどうかは確認できていませんので是非お試しください！

※Macの方は以下記事をご活用ください。

https://qiita.com/minorun365/items/de8f52494b95024b6ec6


# 令和最新版のオススメ利用手順
- 公式サイトより変換君をダウンロード＆解答

http://mobilehackerz.jp/contents/3GPConv

- `cores` フォルダー内に最新のエンコーダー＆デコーダーをウェブから探してきて配置
    - FFmpeg：マルチメディア変換ツール。特にデコードはこれがあればだいたい完結します
    - x264：MP4動画エンコーダー
    - LAME：MP3音声エンコーダー
    - NeroAACEnc：MP4音声エンコーダー
    - など…

- `Transcoding.ini` ファイルを編集して設定をカスタマイズ

実は、設定ファイルのカスタマイズは非常に奥深く難しい世界です。
なぜならエンコーダーごとに必要な設定が異なり、かつバージョンごとに細かい設定が変わることと、そのうえで正解がなくユースケースに応じて細かいパラーメーターを追求しだすとキリがないためです。
（同時に非常に面白い部分でもあります）

### Transcoding.ini の設定例
※必要な各種エンコーダーや音量調整ツールなどは設定に応じて入手し `cores` フォルダーへ配置してください。

- 動画をHDサイズのMP4ファイルに変換したい
    - ビデオはh264、音声はAACのコーデックをそれぞれ利用しています
    - それらをFFmpegで結合しMP4コンテナへ格納しています

```ini:Transcoding.ini
[Item0]
Title=動画をHDサイズのMP4ファイルに変換したい（アスペクト比16:9）
Command0=""<%AppPath%>¥cores¥x264" --video-filter resize:width=1280,height=720 --output "<%TemporaryFile%>.mp4" "<%InputFile%>""
Command1=""<%AppPath%>¥cores¥ffmpeg" -i "<%InputFile%>" -y -vn -acodec pcm_s16le -ac 2 -ar 44100 "<%TemporaryFile%>.wav""
Command2=""<%AppPath%>¥cores¥neroAacEnc" -if "<%TemporaryFile%>.wav" -of "<%TemporaryFile%>.aac""
Command3=""<%AppPath%>¥cores¥ffmpeg" -i "<%TemporaryFile%>.mp4" -i "<%TemporaryFile%>.aac" -y -vcodec copy -acodec copy "<%OutputFile%>.mp4""
Command4="cmd /c "del "<%TemporaryFile%>*.*"""
```

- なぜか再生できない動画をとりあえず無圧縮でエンコードしてみたい
    - FFmpegはデコード万能です。Windows系で汎用性の高いAVIコンテナに格納しています
    - 無圧縮でロスレス変換すらしていないため、クソデカファイルになる点はご注意ください

```ini:Transcoding.ini
[Item1]
Title=なぜか再生できない動画をとりあえず無圧縮でエンコードしてみたい
Command0=""<%AppPath%>¥cores¥ffmpeg" -i "<%InputFile%>" -y -aspect 16:9 -vcodec huffyuv -acodec pcm_s16le "<%OutputFile%>.avi""
```

- 音声/音楽ファイルを高音質なMP3に変換して音量調整もしたい
    - MP3エンコーダーの鉄板LAMEで可変ビットレートの最高品質設定にしています
    - AACGainで音量調整しています。メタデータを書き換えるのみでクリッピングも回避しているため、ロスレス（後から元に戻せる）です

```ini:Transcoding.ini
[Item2]
Title=音声/音楽ファイルを高音質なMP3に変換して音量調整もしたい（89db）
Command0=""<%AppPath%>¥cores¥ffmpeg" -i "<%InputFile%>" -y -vn -acodec pcm_s16le "<%TemporaryFile%>.wav""
Command1=""<%AppPath%>¥cores¥lame" -V 0 "<%TemporaryFile%>.wav" "<%OutputFile%>.mp3""
Command2=""<%AppPath%>¥cores¥aacgain" /r /k /d "<%OutputFile%>.mp3""
Command3="cmd /c "del "<%TemporaryFile%>*.*"""
```


# 最後に
実は私自身、数年前からプライベートのデジタル環境がすべてApple製品になってしまったため、実は今回の記事内容について実機検証が十分にできていない部分があります。もしお気づきの点があればお知らせくださいますと幸いです。