Raspberry Pi (Raspbian) で、MPEG2-TSファイルをmp4に変換する際に詰まった点
【変換元・変換先】
変換元MPEG2-TS:動画MPEG2・音声AAC
変換先MP4:動画H.264/AVC・音声AAC
【Raspberry PiにおけるMPEG2-TS→mp4への変換の概要】
Raspberry PiにはGPUが搭載されており、ハードウェアアクセラレーターを利用したH.264エンコーダーと、有償ではあるがMPEG2デコーダーが利用できる。
(MPEG2デコーダーのライセンスキーは、
http://www.raspberrypi.com/mpeg-2-license-key/
にて購入可能である。)
しかし、ここで問題なのが、このエンコーダー・デコーダーはあまり汎用的でないということである。というのも、フォーラムなどを見てみると、このGPUがどうやらメディア再生とカメラモジュール向けのようなのである。
(カメラ向けであるからか、ハードウェアアクセラレーターはカメラ機能を有効にしないと機能しない。
参考:Connecting The Dots: Rasberry Piのmpeg2ハードウェアデコーダの有効化
なお、カメラ機能を有効にするにはGPUに128MB以上のメモリを割り当てる必要がある。
参照:Raspberry Piユーザーガイド 第2版 - Eben Upton, Gareth Halfacree - Google ブックス)
つまり、変換には適していないのだ。無論、今後のアップデートで変換向けのツールが出てくるかもしれないが、2015年2月現在、GStreamerを利用してカメラ向けエンコーダーを利用するのが主流のようだ。
【変換の下準備】
- apt-getで
gstreamer1.0-plugins-base-apps gstreamer1.0-tools gstreamer1.0-plugins-ugly
の3つのパッケージをインストールする。 - 変換用シェルスクリプトを書く
RaspberryPiで動画をエンコードする - Qiita
を参考にさせていただき、以下のようなスクリプトを書いた。*1
<encode.sh>
#!/bin/sh INPUT="$1" OUTPUT="$2" ## encode start echo "encode start ------------------" gst-launch-1.0 \ filesrc location="${INPUT}" \ ! progressreport \ ! tsdemux name=demuxer \ ! queue \ ! aacparse \ ! faad \ ! voaacenc bitrate=147456 \ ! mp4mux name=mux \ ! filesink location="${OUTPUT}" demuxer. \ ! queue \ ! mpegvideoparse \ ! omxmpeg2videodec \ ! omxh264enc target-bitrate=5120000 control-rate=variable \ ! video/x-h264,stream-format=byte-stream,profile=main \ ! h264parse \ ! mux. status=$? echo "encode exit" exit $status
【変換作業】
./encode.sh hoge.ts hoge.mp4
でOK。
【詰まった点】
<音声部>
AACがADTS AACである場合、mp4muxに処理させる際は、ADTSヘッダーを抜いてRAW AACの形式にしなければならず、
このADTSヘッダーを抜く作業のみをできればいいのだが、そんな器用なことができないので、
一旦、16bitのRAWデータに変換してから、もう一度RAW AACに変換し直している。
参考:
また、本当なら、voaacencではなくfaacを使いたかったが、apt-getから取得できるプラグインには同梱されていないので、パス。(ビルドするの面倒臭い(´・ω・`))
<動画部>
元動画がインターレースの場合、動きが激しいシーンでジャギーが出る。
MPEG2デコーダー(omxmpeg2videodec)側で勝手にプログレッシブ化するっぽいのだが、(まあ、再生向けのデコーダーだもんねぇ・・・)デインターレース処理が適当なせいで、ジャギーが出るっぽい。
と言っても、他のデコーダー使ったり、GStreamerで利用できるデインターレース処理をしたりするとGPUの支援が無いので、「遅っ」という感じである。
【結論】
まあ、RaspberryPiにはきつかったかなという印象。
もう少し、動画変換向けのツールが出れば使ってもいいかな・・・
製品紹介(Amazon.co.jpアソシエイト)-----------------
Raspberry Pi 3 MODEL B 【RS正規流通品】
- 出版社/メーカー: Raspberry Pi
- 発売日: 2016/04/28
- メディア: Tools & Hardware
- この商品を含むブログを見る
*1:参考元は、スケールを小さくする変換を行っているが、ここでは省いている。また、参考元にはaudioresampleなどが入っているが、特にビット深度・色空間等の変換は不要と判断し、省いている。他にもちょこちょこ手を加えている。