nginx rtmp-module flvファイルをRTMPでオンデマンド配信する

映像配信

本ページは広告が含まれています。気になる広告をクリック頂けますと、サーバ運営費になります(^^

nginx rtmp-module はオンデマンド映像配信できる。
単にファイルをHTML5形式のvideo タグ再生するという意味ではなくmp4,flvをrtmpで配信する事ができる。これができると、セキュリティ的にちょっとだけ向上する。HTML5のvideoタグだと右クリック映像ダウンロードなんて簡単だが、rtmpで配信できれば、通常の方法だとダウンロードできない。(ただ、巷にはrtmpをダウンロードするファイルは出回ってるし、画面キャプチャされちゃえばどんなに頑張ってもデータ化されちゃうけどね。)

んで、いざflvをオンデマンド配信してみたら、

あら、画面が小さい。おかしい。それにseekできない。なんじゃこりゃ。

Page not found | rarut | Page 12
nginx-rtmp-module

FLVs recorded with the module are NOT indexed. You can use FLV metadata indexer (like Yamdi: http://yamdi.sourceforge.net/) to index it.

nginx rtmp-module のrecode機能で作成したflvファイルにはindex(metadata)がつかないため、これを再生するとaspect retioもおかしいし、seekingもできない。

Directives
NGINX-based Media Streaming Server. Contribute to arut/nginx-rtmp-module development by creating an account on GitHub.

If you play FLVs recorded with the record directive please do not forget to index them before playing. They are created unindexed.

record機能を使うとunindexedになる。

なので、FLV metadata indexerを利用してindexをつける必要がる。rarutさんが推奨してるのはYamdiで、Yamdiは少ないメモリでも早く動く。大きなファイルを扱う事もできる。このほかにもflvmetaを使ってみたがaspect retioは思い通りになったものの、seekできないファイルが大きくなると扱えないのだと思う。

Screenshot of yamdi.sourceforge.net
w3m https://sourceforge.net/projects/yamdi/files/yamdi/1.9/

yamdi-1.9.tar.gz をダウンロード

tar xzf yamdi-1.9.tar.gz
cd yamdi-1.9
gcc yamdi.c -o yamdi -O2 -Wall

して、できたyamdiを/usr/sbinに入れて、

sudo /usr/sbin/yamdi -i test.flv -o test_meta.flv

としたら、見事seekもできるし、解像度もちゃんと表示できるようになった。

これを録画終了と同時に自動的に行う事ができる。

FAQ
NGINX-based Media Streaming Server. Contribute to arut/nginx-rtmp-module development by creating an account on GitHub.

こんな感じで

application multi {
live on;
record all;
record_path /tmp/rec;
exec_record_done yamdi -i $path -o /tmp/rec2/$basename;
allow publish 127.0.0.1;
on_play http://localhost:8080/on_play;
}

大きいファイルになると、
flvtools2もだめだった
flvmetaもだめだった。

ちなみに、Ubuntu 5.4.0-6ubuntu1~16.04.2 でインストールできる

apt-cache show yamdi
Package: yamdi
Priority: extra
Section: universe/utils
Installed-Size: 84
Maintainer: Ubuntu MOTU Developers
Original-Maintainer: Todd Troxell
Architecture: amd64
Version: 1.4-2

では、seekはできるようになったものの、aspect ratioが4:3になってしまい使えなかった。

タイトルとURLをコピーしました