ffmpegを使用したmp4のストリーミング


16

すべてのHTML5ビデオプレーヤーで互換性を持たせるために、webmとmp4の2つのストリームを持つフィードを作成する必要があります。webmストリームは完全に機能します。ただし、mp4ストリームにアクセスしようとすると、サーバーは次のエラーを出力します。

Sat Mar  9 23:21:54 2013 muxer does not support non seekable output

mp4ストリームを処理するffserver.confファイルの部分は次のとおりです。

<Stream channel1.mp4>       # Output stream URL definition
   Feed feed1.ffm              # Feed from which to receive video
   Format mp4

   # Audio settings
   AudioCodec libmp3lame
   AudioBitRate 64             # Audio bitrate

   # Video settings
   VideoCodec libx264
   VideoSize 560x320           # Video resolution
   VideoFrameRate 25           # Video FPS
   AVOptionVideo flags +global_header  # Parameters passed to encoder
                                       # (same as ffmpeg command-line parameters)
   AVOptionVideo cpu-used 0
   AVOptionVideo qmin 10
   AVOptionVideo qmax 42
   AVOptionVideo quality good
   AVOptionAudio flags +global_header
   PreRoll 15
   StartSendOnKey
   VideoBitRate 400            # Video bitrate
</Stream>

私が見つけることができるものから、一部の人々は、mp4は単にストリーミングできないと言っています。HTML5ビデオプレーヤーを使用してiPhoneにビデオをストリーミングするにはmp4が必要であるという印象を受けたという事実を除き、mp4には添付ファイルがありません。これが当てはまらない場合はお知らせください。ffmpegストリーミングでより快適に動作するものに喜んで切り替えます。


3
MP4 をストリーミングする必要はありません。HTML5 H.264 / MP4ビデオの場合、でビデオファイルをエンコードする-movflags faststartか、で処理qt-faststartし、<video>タグ内のMP4ファイルをポイントすれば十分です。サーバーには、クライアントがシークできるようにH.264ストリーミングモジュールが必要です。または、ライブ入力がありますか?
slhck

私のクライアントはこれがストリーミングであることを要求しています-彼はクライアントのシークを完全に無効にしたいです。ファイルからのストリーミングです(違いがある場合、サーバー上のファイルはwebm形式です)。iPhoneはコントロールを強制的に表示するため、コントロールを単純に非表示にすることはできません。
Fibericon

@slhck:mp4でライブWebカメラ入力をストリーミングしていますが、できません。flvを使用すると動作します。ライブストリーミングにmp4を使用することは可能ですか?
ジョンクアリズ

@JohnQualis ffserverで実行可能かどうかはわかりません。ただし、コンテナは重要ではありません。コーデックはFLVとMP4(H.264とAAC)で同じです。
slhck 14

@sklhck:ffserverを使用してflvで動作するようになりましたが、mp4では動作しません。ほとんどのWebブラウザーはmp4をサポートしています。私は、iPhone上で動作するものが必要、アンドロイドと、すべての有名なWebブラウザとそのH264その:)そして、私はライブウェブカメラをストリーミングしています
ジョン・クオリス

回答:


6

2014年11月12日に最終更新された記事「 HTML 5 and iPad-friendly Video from your own Web Site」には、次の情報が含まれています。

画像

この記事では、AACでH.264エンコーディングを使用する、十分な最新バージョンのffmpegでMP4を優れたソリューションとして使用することを推奨しています。

詳細に注意して記事を読むことをお勧めします。すべての主要なブラウザーで動作するHTMLファイルの例と、ビデオを.mp4ファイルに変換して正しくストリーミングするために使用されるFFmpegコマンドの例が含まれています。


これは「ライブ」ストリーミングに関するものですか?
マルクスシーベニーヒャー

@MarkusSiebeneicher:はい、ほとんど。
harrymc

「シーク可能」ではないように見えるため、ffmpegでmp4をストリーミングする「ライブ」の問題がまだあります。ffmpegの出力をブラウザーに直接パイプします。webmではそのまま使用できます。mp4形式を使用すると、シークできないと言われます...だから、mp4を「ライブ」ストリーミング可能にするにはどうすればよいのでしょうか。ビデオはファイルとして直接保存されません(シーク可能になります)。
マルクスシーベニーヒャー

@MarkusSiebeneicher:詳細を記載した新しい投稿でこの質問をすることをお勧めします。
harrymc

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.