ずっと気になっていたこの記事。
何度か試したけどうまくいかなかった記憶ある。改めて試す。
ーーー
まずはリポジトリの追加。
以下を /etc/apt/source.list に追記する。
# cat /etc/apt/source.list
# sudo apt-get -y update
# sudo aptitude update
何か失敗している。
インストールがうまく行っているのかよくわからないが進める。こっちのサイトのほうが分かりやすい。
Connecting The Dots: Raspberry Piでgstreamerを使ったh264エンコード
必要なデコーダがインストールされているか確認。
# gst-inspect-1.0 | grep omx | grep dec
omxmpeg2videodec
omxh264dec
両方あるから、インストールはうまく行ってるらしい。
ーーー
動画変換を試す。
ソースはこれ。
コマンドはこれ。
# gst-launch-1.0 filesrc location=test.ts ! progressreport ! tsdemux name=demuxer demuxer. ! queue ! aacparse ! avdec_aac ! audioresample ! audioconvert dithering=0 ! voaacenc bitrate=192000 ! mux. mp4mux name=mux ! filesink location=test.mp4 demuxer. ! queue ! mpegvideoparse ! omxmpeg2videodec ! videoconvert ! omxh264enc target-bitrate=3000000 control-rate=variable ! video/x-h264,width=1280,height=720,stream-format=byte-stream,profile=high ! h264parse ! mux.
結果。エラーになった。no element "tsdemux" となってしまう。
tsdemuxて何だ。tsをdemuxするもの?
muxはミキサーだとすると、ミキサーをdeするもの?decoderのdeと同じなのか?
# gstreamer1.0 | grep mux
確かに "tsdemux"は無い。これが原因か。
ーーー
いろいろ調べて、可能性としては以下。
① gstreamer1.0 がうまくインストールできていない or Plugin(ミキサー)が足りない
② ffmpeg がうまくインストールできていない or バージョンが古い
③ RaspberryPiでデコーダを使うには実はカメラ機能をONにする必要がある
④ RaspberryPiのハードウェアデコーダキーがインストールされていない
多分①か②。③も試す。④はありえない。ts再生がヌルヌルだから。
ーーー
改めてgstreamerのインストールをしなおす。
# sudo apt-get -y autoremove
# sudo apt-get install gstreamer1.0-*
インストール保留になってる10個って、
gstreamer1.0-plugins-bad
gstreamer1.0-plugins-ugly
にある10個のことらしい。これらがインストールされれば"tsdemux"も入るのかもしれない。
エラーにある「E: 問題を解決することができません。壊れた変更禁止パッケージがあります。」を、まず解決するかと思ったが、面倒なので、gstreamer1.0を丸ごと削除して、インストールし直す。
apt-get remove ではなく
apt-get --purge で行う。
apt-get install ****** でinstallしたものをuninstallするには?- Linux系OS | 教えて!goo
# apt-get -y --purge remove gstreamer1.0*
# apt-get -y autoremove
ーーー
同じく、ffmpegも完全に削除してインストールしなおす。
# apt-get -y --purge remove ffmpeg
ーーー
これで全部アンインストールされたはずだが、apt-get の結果に「保留:10個」と出ていて気持ち悪い。これが原因かもしれないので、保留の解消方法を調べる。
# apt-get dist-upgrade
で保留は解消するらしい。実行。
インストール状況を調べる。fedoraのyumばっか使ってるから、apt-getを改めて勉強する。
# dpkg -l gstreamer
# dpkg -l ffmpeg
クリーンな状況にしたので、gstreamer と ffmpeg を慎重にインストールする。最新版を入れたい。
このサイトが良さげ。
しかし、スクリプトの途中で
# mediainfo
なるコマンドを使っている。
そんなの無いんだけど。
こっちのサイトも良い感じだが、やはり mediainfo が前提だ。
もう mediainfo はいいや。気にしない。
gstreamer をインストールする。
# sudo apt-get install gstreamer1.0-*
やっぱダメ。こりゃ本腰入れる必要あるな。
ーーー
もっかい調査。
ソースから入れる。このサイト参考。
サイトに有るスクリプト実行するも、最初のautoconfからしてコケる。
やむをえないので RaspberryPi 3 でやり直す。続記事に継続。