各種操作
ストリームの録画
インバウンドストリームを録画します。 record
コマンドを使用すると、ユーザーはストリームの録画ができます。新規ストリームがサーバーに取り込まれると、録画されるストリームのリストと照合されます。
ストリームはFLVファイル、MPEG-TSファイル、MP4ファイルとして録画する事が可能です。
ストリームの先頭のフレームを録画したい場合はストリームを追加するよりも前に
record
コマンドを実行しておく必要があります。設定
MP4ファイルの録画
record
コマンドのデフォルトフォーマットです。
一般的なフォーマット
・Windows
・Linuxパッケージ
・Linuxアーカイブ
呼び出しを簡単にするために、相対パスの使用も可能です。
生成されたファイルは自動的に pathtofile
で宣言されたフォルダに保存されます。
media: --> targetfolder
-testRecord.mp4.info --> mp4 file on creation
-testRecord.mp4.mdat --> mp4 file on creation
-testRecord.mp4.track1 --> mp4 file on creation
-testRecord.mp4.track2 --> mp4 file on creation
ストリームソースが終了または切断となった場合、MP4ファイルはひとつにコンパイルされます。
詳しくは下記「MP4ファイルの作成」を確認ください。
media: --> targetfolder
-testRecord.mp4 --> completed mp4 file
chunkLength
パラメータを追加した場合
media: --> targetfolder
-testRecord_part0000.mp4 --> completed mp4 file chunk
-testRecord_part0001.mp4.info --> mp4 file on creation
-testRecord_part0001.mp4.mdat --> mp4 file on creation
-testRecord_part0001.mp4.track1 --> mp4 file on creation
-testRecord_part0001.mp4.track2 --> mp4 file on creation
MP4ファイルの作成
MP4ファイルフォーマットを作成する場合、EMSは以下の3つ(ビデオ/オーディオのみの場合)或いは4つ(ビデオとオーディオが両方ある場合)の異なるファイルを作成します。
- filename.info
- filename.mdat
- filename.track1
- filename.track2(ビデオとオーディオが両方ある場合)
record
コマンドで指定した保存先フォルダに保存されます。録画終了時、もしくは新規chunkを作成する為に録画ファイルがEMSによって閉じられた時に、これらのファイルは自動的に.mp4ファイルとしてひとつにまとめられます。これはファイルの先頭に"atoms"ヘッダを追加して、最適化されたMP4ファイルフォーマットを作成する為におこなわれます。
EMSはevo-mp4writerバイナリを使用して複数のファイルからMP4ファイルを作成します。
何らかの理由でMP4ファイルを作成できなかった場合は、手動でevo-mp4writerバイナリを使用してMP4ファイルを作成する事ができます。通常、このような不具合は、EMSまたはサーバー自体が録画の途中でシャットダウンされ、evo-mp4writerが実行される機会が与えられない場合にのみ発生します。
evo-mp4writerのコマンド書式
-path
パラメータは、recordの pathtofile
パラメータと一致している必要があります。
上記コマンドが失敗した場合は、 --recovery
パラメータを最後に加えておくこともできます。
--recovery
オプションはバージョン1.7.0または1.7.1で非推奨になる予定です。以前は、このオプションはmdatを変更せずにftypやmoovアトムを書き換える事で手間を省くことができましたが、現状はmoovもmdatも内部コードベースで常に処理されるため、evo-mp4writerを手動で動作させる場合も無効となりました。
TSファイルの録画
一般的なフォーマット
・Windows
・Linuxパッケージ
・Linuxアーカイブ
呼び出しを簡単にするために、相対パスの使用も可能です。
生成されたファイルは自動的に pathtofile
で宣言されたフォルダに保存されます。
media: --> targetfolder
-testRecord.ts --> ts file
chunkLength
パラメータを追加した場合
media: --> targetfolder
-testRecord_part0000.ts --> ts file chunk
-testRecord_part0001.ts --> ts file chunk
-testRecord_part0002.ts --> ts file chunk
-testRecord_part0003.ts --> ts file chunk
...
TSファイルの長さは chunkLength
パラメータによって決まります。
ストリームソースが終了または切断された場合、TSファイルはそのまま残ります。
FLVファイルの録画
一般的なフォーマット
・Windows
・Linuxパッケージ
・Linuxアーカイブ
呼び出しを簡単にするために、相対パスの使用も可能です。
生成されたファイルは自動的に pathtofile
で宣言されたフォルダに保存されます。
media: --> targetfolder
testRecord.flv --> flv file
chunkLength
パラメータを追加した場合
media: --> targetfolder
-testRecord_part0000.flv --> flv file chunk
-testRecord_part0001.flv --> flv file chunk
-testRecord_part0002.flv --> flv file chunk
-testRecord_part0003.flv --> flv file chunk
...
FLVファイルの長さは chunkLength
パラメータによって決まります。
ストリームソースが終了または切断された場合、FLVファイルはそのまま残ります。
JSON CLI レスポンス
サンプルAPIコール
JSON CLI レスポンス
Command entered successfully!
Recording Stream
chunkLength: 0
configId: 5
localStreamName: testpullstream
pathToFile: ../media/testRecord
type: mp4
録画の停止
録画しているストリームは、EMSの他のストリームと同様に、ネットワークではなくファイルに転送されるだけです。従って、ユーザーは通常のshutdown streamコマンドのいずれかを使って録画を停止する事が出来ます。この時書き出し中のファイルもクローズされます。それまでに記録された全てのデータは、そのファイルに保存されたままになります。 ストリームがまだ録画されていなかった場合(指定した名前のストリームがなかった場合)は、録画はキャンセルされます。