2012/10/31

FFmpeg + WebM Live Streaming  FreeBSD

はまったのでメモ。

FreeBSD+ffserver+WebMでlive streamingをやりたかった。
しかしうまくいかず悩んだ。なぜかFLVではOKなのに。
で、こういうのを見つけた↓。

https://ffmpeg.org/trac/ffmpeg/ticket/684

つまり最新のバージョンじゃないとうまく行かないとのこと。
FreeBSDのportsからffmpegを入れると0.7.13(2012年10月30日現在)が入る。これは古いバージョンらしい。
で、portsにffmpeg1があるのでこれを入れてみたら、うまく行った。

設定は

ffserver.conf:

Port            8090
BindAddress     0.0.0.0
MaxClients      1000
MaxBandwidth    50000
CustomLog -
NoDaemon

<Feed feed1.ffm>
File /tmp/feed1.ffm
FileMaxSize 1M
#ACL allow 127.0.0.1
</Feed>

<Stream feed1.webm>
Feed feed1.ffm
Format webm
AudioCodec vorbis
AudioBitRate 64
VideoCodec libvpx
VideoSize 512x288
#VideoFrameRate 25
AVOptionVideo flags +global_header
AVOptionAudio flags +global_header
PreRoll 15
StartSendOnKey
#VideoBitRate 800
</Stream>

<Stream stat.html>
Format status
# Only allow local people to get the status
ACL allow localhost
ACL allow 192.168.0.0 192.168.255.255
</Stream>

# Redirect index.html to the appropriate site
<Redirect index.html>
URL http://www.ffmpeg.org/
</Redirect>
サーバー側のコマンドは

# ffserver1 -f ffserver.conf

配信側のコマンドは(今回はwebmファイル)

$ ffmpeg1 -i XXX.webm http://localhost:8090/feed1.ffm

そしてついでにHTML5で動画を見るためのhtmlファイル。

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>FFmepg-Streaming (WebM)</title>
</head>
<body>
  <center>
    <video controls>
      <source src="stream_multi.m3u8" type='video/mp4; codecs="avc.42E01E, mp4a.40.2"'
/>
      <source src="http://server:8090/feed1.webm" type='video/webm; codecs="vp8, vorbis
"' />
      Sorry, your browser does not support HTML5. 
    </video>
  </center>
</body>
</html>
まあこれで何とか見れました。(http://serverのserverは自分で置換してください)
最後はffmpeg使ってWebCamでのストリーミングだ。
0
タグ: FFmpeg ffserver WebM



2012/11/25  5:35

投稿者:ひしろ

こんにちは。
http://nakkaya.com/2011/03/23/streaming-opencv-video-over-the-network-using-mjpeg/
なんかどうでしょうか?
残念ながら詳細を理解していないので分かりませんが。

2012/11/24  23:23

投稿者:cliw

こんばんは。
ffmpegとWebcamを使ったリアルタイムストリーミングについてお聞きしたいことがあります。
当方は、Webcamから自分のプログラムで取得してから(OpenCV等で画像処理で物体検出をするため)、その画像をストリームしたいと考えております。現段階では、OpenCVで画像を取得し、画像処理をした後、jpeg形式で他PCに送信しています。
これを、jpeg形式ではなくh.264やmpeg等でエンコードしてストリームしたいのですが、上のような使い方をffmpegでできるのしょうか?
よろしくお願いします。


※投稿されたコメントは管理人の承認後反映されます。

コメントを書く


名前
メールアドレス
コメント本文(1000文字まで)
URL




teacup.ブログ “AutoPage”
AutoPage最新お知らせ