2012-04-14 18 views
0

ffmpegを使用して、ライブストリームをエンコードしてFlash Media Serverに公開したいと考えています。 iOSデバイスをサポートするためには、HTTPライブストリーミングも実装する必要があります。ビデオはH.264形式で、オーディオはAACでなければなりません。私はffmpegで多くの経験を積んでいませんし、これを動作させるのに苦労しています。これは私が試したコマンド(および同様にいくつかのバリエーションが)です:Flash Media ServerとHDSでffmpegを使用

ffmpeg.exe -threads 15 -f dshow -i video="USB2.0 UVC WebCam":audio="Microphone (Realtek High Defini" \ 
     -map_channel 0.1.1 -r 24 -acodec libvo_aacenc -ar 22050 -ab 128k -vcodec libx264 \ 
     -s vga -vb 100k -f flv "rtmp://<public-dns>/livepkgr/livestream1?adbe-live-event=liveevent" \ 
     -r 24 -acodec libvo_aacenc -ar 22050 -ab 128k -vcodec libx264 -s qvga -vb 200k \ 
     -f flv "rtmp://<public-dns>/livepkgr/livestream2?adbe-live-event=liveevent" \ 
     -r 24 -acodec libvo_aacenc -ar 22050 -ab 128k -vcodec libx264 -s vga -vb 350k 
     -f flv "rtmp://<public-dns>/livepkgr/livestream3?adbe-live-event=liveevent" 

私はこれを実行すると、FMSに接続するように見えるが、その後、私はフレーム落ちに関するエラーメッセージの多くを得る - I ANYフレームが正常にエンコードされているかどうかわかりません。私のCPU使用率も非常に高いです。私は、個々のストリームの1つ(* livestream.m3u8のメインファイルがアクセス可能です)の* .m3u8ファイルのURLを入力すると、FMSから404エラーが発生します。私はFMSの代わりにファイルに出力しようとしましたが、成功しませんでした。私が得るのは、非常に文字化けした音とビデオがないことだけです。

これを実行するために使用する必要があるオプション/コマンドの候補はありますか? FMSでffmpegを使用する人は、MP4ビデオでHTTPダイナミックストリーミング/ HLSを行うのですか?私はHDS/HLSをしばらく働かせて苦労していましたが、どんな助けでも大歓迎です!違いはありませんが、Amazon EC2でFMSをAMIイメージと併用しています。

ありがとうございます!

+0

http://blog.denivip.ru/index.php/2011/07/1893/?lang=jaおよびhttp://betterlogic.com/roger/2012/08/ffmpeg-receiving-rtmp-stream- from-flash-media-server /役立つかもしれません – rogerdpack

答えて

2
-threads 15 

私はその価値を深く疑っています。 threadsスイッチに関する私自身の研究と実験では、4を超える値は間違いだと言います。私もこの値の深く疑わしいよ低い値、および/または2

-f flv 

で割り切れる値を使用して、それを削除してみてください。 FLVとh.264はよく一緒に再生されません。代わりにMP4を使用してください。

あなたはCPUが「高」であると言いますが、パーセンテージについては言及していません。また、3つの異なるビットレートをエンコードしていることにも注意してください。そして、実行しているCPUについては言及していません。 Pentium 4またはCore 2?私は驚かないだろう。現代のCore i7、まあまあです。

なぜFFmpegを使用していますか? AdobeのFlash Media Live Encoderを使用する方が簡単かもしれません。