凹みTips

C++、JavaScript、Unity、ガジェット等の Tips について雑多に書いています。

Ubuntu 10.04 LTS で ffmpeg + ffserver を動かす

はじめに

Ubuntuffmpeg + ffserver を入れてデスクトップのライブストリーミングをしようと思ったのですが、かなりハマったのでメモとして残しておきます。

問題点

  • aptitude で普通にインストールすると x11grab(デスクトップキャプチャ用オプション)が入らず.
  • 手順に沿ってインストールしないとゴミが出来てインストールに失敗。
  • Ubuntu 11.04 ではヘッダファイルがないと怒られてダメ。

何度 Ubuntu を再インストールしたことか…。

インストール手順

手順というまでもありませんが…。

  1. ページが見つかりませんでした - Pigumer Groupを参考にシェルスクリプトを作成:ffmpeg.sh 直
  2. sh ffmpeg.sh
  3. 待つ

おしまいです。

※ デスクトップ画像をあたかもWEBカメラで撮影しているかのように仮想videoデバイスに流し込みたい場合は d:id:hycon:20100923:1285226128 が大変参考になります。

実行方法

ffserver.confを色々と編集して

ffserver -f ffserver.conf

とすれば ffserver が起動し、ffserver.conf に書いた設定に応じたストリーミング配信をしてくれるのですが、記述内容とかはよく分からないので適当に物色して記述。

Port 8090
BindAddress 0.0.0.0
MaxHTTPConnections 1000
MaxClients 200
MaxBandwidth 10000
CustomLog -
ACL allow 127.0.0.1

NoDaemon

<Feed feed1.ffm>
File /tmp/feed1.ffm
FileMaxSize 2000M
</Feed>

<Stream test.mpg>
#<Stream test.swf>
Feed feed1.ffm
Format mpeg
#Format swf
VideoFrameRate 30
VideoSize 640x480
VideoBitRate 512
VideoBufferSize 80
VideoGopSize 30
NoAudio
</Stream>

<Stream stat.html>
Format status
</Stream>
ffmpeg -f x11grab -r 30 -s 640x480 -i :0.0 -vcodec libx264 -vpre lossless_ultrafast -threads 2 -s 640x480 http://localhost:8090/feed1.ffm

※ RTSPで配信したい場合は、http://comments.gmane.org/gmane.comp.video.ffmpeg.ffserver.user/239:Trying to live stream x264 video with FFserverを参考に作成すればOKです。

結果

mpegの場合は相当ラグいです。swfの場合もラグいです、ちょっとマシですが。