web-dev-qa-db-ja.com

HTTPライブストリーミング、FFMPEG&FFSERVER、およびiPhone OS 3

IPhone OS 3では、Appleは HTTPライブストリーミング を導入しました。これにより、インターネットからのビデオのライブストリーミングが可能になります。現在、サーバーにフィードするWebカメラを操作しています、そしてffmpegによってflvストリームに変換され、ffserverを使用してストリームバックされます。急いで。

19
jcnnghm

バージョンffmpegのコピーを作成する必要があります> = e109a29d6ddb02b2dd58c6c385ebec27f2d23b58(git)または18793(svn)。ビルド時に--enable-libx264フラグも指定するようにしてください。起動して実行したら、おおよそ次のことができます。

ffmpeg -i <input video> -acodec libmp3lame -ac 1 -vcodec libx264 -s 320x240 \
       -level 30 -f mpegts - | \
segmenter - 10 test test.m3u8 http://example.com/path/to/your/files/

つまり、入力ファイルまたはストリームをffmpegに取り込み、MP3オーディオ付きのH.264ビデオをAppleのセグメンターにパイプします。セグメンターは、セグメント化されたビデオファイルと、セグメント化されたファイルを指すM3Uプレイリストを吐き出します。 ApacheのようなWebサーバーを介して、セグメント化されたファイルとプレイリストを提供します。

当然のことながら、ffmpegとセグメンターのオプションを大幅に調整して、目的の結果を得ることができます。

23
Nathan de Vries

興味のある人のために、ffmpegを使用してこれを行うことができるスクリプトをオープンソースセグメンターにバンドルしました。私の iphoneでのセグメントストリーミング プロジェクトを参照してください。入力ストリームに対してマルチビットレートセグメントを実行でき、scp、ftp、さらにはaws s3までを介してストリームセグメントを設定可能な宛先に転送します。

12
carson

これはかなり古いトピックですが、FFmpegの新機能と思われるHLSサポートは、誰かにとって役立つかもしれません。

使用例は次のとおりです。

ffmpeg -i <input_file> -c:v libx264 -preset slow -map 0 -an -flags -global_header -f hls -hls_time <segment_length> <m3u8_file>

ライブストリーミングを行う場合、これは別の例になります。

ffmpeg -i <input_stream> -c:v libx264 -preset ultrafast -map 0 -an -flags -global_header -f hls -hls_time <segment_length> -hls_list_size <playlist_entries> -hls_wrap <wrap> <m3u8_file>

-hls_list_size引数は、プレイリスト内のファイルの数を制限し、-hls-wrap引数は、合計ファイル数を制限し、そのポイントに達するとファイル名をラップします(例:test0.ts、test1.ts ... test7.ts、test0.ts、test1.ts ...ラップが8の場合)。

詳細については、 ドキュメント を参照してください。上記の例では、-anフラグ、私は個人的にそれを必要としなかったので。

3
polandeer

QuickTimeを使用して映画を「iPhone」形式に変換することの何が問題になっていますか? [ファイル]> [エクスポート]> [iPhone形式]を実行するだけです。何か不足していますか?

IPhone形式に変換した後、mediafilesegmenterで切り取ります( Apple Developer Connection、Http Live Streaming Tools にあります):

mediafilesegmenter -t 10 -f folderName/ nameOfInputFile.m4v

(注:folderName /フォルダーが存在する必要があります)

次に、iPhoneでWebサイトを指定します

<video src='folderName/prog_index.m3u8' height=45 width=70 
       controls='on'>Your browser does not support the video tag</video>
0
yujean