VLCはメディアプレイヤーの一種ではあるものの多様な形態の入出力が可能で、ストリーミング動画をファイルに保存したり、逆に動画ファイルをストリーミングやFTPで送り出すこともできる。HLS配信ではFlazrDumperからHTTPでFLVストリームを受け取りつつ随時ファイル出力を行う。
HlsLauncher.jsが生成しているVLCコマンドラインは次の通り。
手動でVLCを起動するならコマンドプロンプトで上記のコマンドラインで起動するとHlsLauncher.jsと同じ動作になる(FlazrDumperのパスは環境に合わせて要変更)。このコマンドラインではビデオとオーディオは何も処理されずにそのまま分割されTSコンテナに詰め込まれる。
HlsLauncher_iPad.jsを使った場合。
transcodeモジュールで再エンコード処理を先頭に加えているだけでstandardからは同じ。このコマンドラインでは「プロファイルMain、レベル3.1、オーディオmp3、ビットレート2Mbps」でエンコードされ、初代iPadで視聴できる限界設定になる(はず)。近年のスマホならビットレートに問題がなければ視聴できるだろうから使うことはないかもしれない。
任意のエンコード設定に変更するにはHlsLauncher_iPad.jsをテキストエディタで編集する。
VLCコマンドラインの詳細はDocumentation:Streaming HowTo/Advanced Streaming Using the Command Lineあたりを参照。
入力にrtmp://localhost/livestreamを指定すればFlazrDumperのRTMPサーバーからデータを受け取れるものの、これをやると配信エンコーダーを一時停止した場合にVLCがだんまりしてしまうのでおすすめしない。HTTPを使う場合はOBSを停止するとVLCもエラー終了で判別可能なのでスクリプトで再起動処理を組める。RTMPのほうが遅延が減るかというとそうでもないようだ。
vlc.exe -I dummy http://localhost:8888/ vlc://quit --sout=#standard{access=livehttp{seglen=5,delsegs=true,numsegs=3,index="C:\FlazrDumper\public_html\live\mystream.m3u8",index-url=./ts/mystream-########.ts},mux=ts{use-key-frames},dst="C:\FlazrDumper\public_html\live\ts\mystream-########.ts"}
手動でVLCを起動するならコマンドプロンプトで上記のコマンドラインで起動するとHlsLauncher.jsと同じ動作になる(FlazrDumperのパスは環境に合わせて要変更)。このコマンドラインではビデオとオーディオは何も処理されずにそのまま分割されTSコンテナに詰め込まれる。
HlsLauncher_iPad.jsを使った場合。
vlc.exe -I dummy http://localhost:8888/ vlc://quit --sout=#transcode{vcodec=h264,fps=30,scale=0.667,vb=1900,venc=x264{preset=veryfast,profile=main,keyint=49,min-keyint=4,colormatrix=auto,level=31},acodec=mp3,ab=96}:standard{access=livehttp{seglen=5,delsegs=true,numsegs=3,index="C:\FlazrDumper\public_html\live\mystream.m3u8",index-url=./ts/mystream-########.ts},mux=ts{use-key-frames},dst="C:\FlazrDumper\public_html\live\ts\mystream-########.ts"}
transcodeモジュールで再エンコード処理を先頭に加えているだけでstandardからは同じ。このコマンドラインでは「プロファイルMain、レベル3.1、オーディオmp3、ビットレート2Mbps」でエンコードされ、初代iPadで視聴できる限界設定になる(はず)。近年のスマホならビットレートに問題がなければ視聴できるだろうから使うことはないかもしれない。
任意のエンコード設定に変更するにはHlsLauncher_iPad.jsをテキストエディタで編集する。
VLCコマンドラインの詳細はDocumentation:Streaming HowTo/Advanced Streaming Using the Command Lineあたりを参照。
入力にrtmp://localhost/livestreamを指定すればFlazrDumperのRTMPサーバーからデータを受け取れるものの、これをやると配信エンコーダーを一時停止した場合にVLCがだんまりしてしまうのでおすすめしない。HTTPを使う場合はOBSを停止するとVLCもエラー終了で判別可能なのでスクリプトで再起動処理を組める。RTMPのほうが遅延が減るかというとそうでもないようだ。
タグ
コメントをかく