Ubuntuでピアキャス配信用エンコード

現状Ubuntuでピアキャス配信は不可能ではないけれど、まずその環境を用意するのが面倒だなぁと思っていました。エンコーダ1つ起動するだけで配信を始められないものか。

そうだ。androidでピアキャス配信するアプリ、入力をカメラからデスクトップに変えるだけでUbuntuで配信するやつができるんじゃない?androidってlinuxみたいなもんだし・・・。ところがUbuntuはGUIにUnityが組み込まれていて通常の方法ではスクリーンショットが撮れませんでした。(ウィンドウがない状態のスクリーンショットになる)

しかしアプリの制作過程でできた派生物FFWmvServerがFFServerの代用として使えたので、少しだけ配信のハードルが下げられそうな感じがしました。以下その方法

まずUbuntuソフトウェアセンターからRecordMyDesktopとPulseAudio音量コントロールをインストールします。

Ubuntuソフトウェアセンター

RecordMyDesktopの設定でデバイスをpulseに

RecordMyDesktop設定

FFmpeg Static Builds by BurekなどからFFmpegのバイナリをとってきて展開しておく

FFWmvServerをポート47711で起動

java -jar FFWmvServer.jar 47711

次のシェルスクリプトを実行

# 既にrecordmydesktopが起動していたら止める
killall recordmydesktop
sleep 3
rm -f tmp.ogv
# desktopをtmp.ogvとして出力
recordmydesktop --on-the-fly-encoding --fps=5 --width=1024 --height=768 --overwrite -o tmp.ogv &
sleep 20
# tmp.ogvを入力、FFWmvServerを出力としてエンコード
ffmpeg -f ogg -i tmp.ogv -vcodec wmv1 -s 512x384 -sws_flags lanczos -b 512k -maxrate 1024k -bufsize 560k -r 5 -re -acodec wmav1 -f asf -y http://localhost:47711

これで一応配信することができました

Ubuntuスクリーンショット

このやり方の問題点

  • デスクトップ取り込み後すぐにエンコードを始めると止まってしまうので少し時間を開けなければいけないがラグがひどくなる
  • デスクトップ取り込みとffmpegの2段階エンコでcpuがやばい

参考:recordMyDesktopの設定 ステレオミックスの方法など

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です