2012-04-14 102 views
0

我想使用ffmpeg编码并将实时流发布到Flash Media Server。为了支持iOS设备,我还需要实现HTTP Live Streaming。视频需要采用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,但后来我得到了很多的错误信息大约掉帧现象 - 我我不确定是否有任何帧被成功编码。我的CPU使用率也很高。当我为其中一个单独的流输入* .m3u8文件的URL时,我收到了来自FMS的404错误(虽然主livestream.m3u8文件可以访问)。我也尝试输出到一个文件,而不是FMS,没有成功。我得到的只是一些非常乱码的声音,没有视频。

对于我应该使用哪些选项/命令来获得此效果有任何建议吗?有没有人使用ffmpeg与FMS做MP4视频的HTTP Dynamic Streaming/HLS?我一直在努力争取HDS/HLS工作一段时间,任何帮助将非常感谢!它不应该有所作为,但我在Amazon EC2上使用FMS和他们的AMI映像。

谢谢!

+0

http://blog.denivip.ru/index.php/2011/07/1893/?lang=en和http://betterlogic.com/roger/2012/08/ffmpeg-receiving-rtmp-stream-从闪存媒体服务器/可能会有所帮助 – rogerdpack 2012-09-06 17:31:45

回答

2
-threads 15 

我对这个价值深表怀疑。我自己对threads开关的研究和实验表明,任何高于4的值都是错误的。尝试删除它,使用较低的值,和/或通过2

-f flv 

我也深深怀疑这个值整除的值。 FLV和h.264在一起播放不好。使用MP4代替。

你提到的CPU是“高”,但你没有提到一个百分比。另请注意,您正在编码三种不同的比特率 - 有效地同时进行三个编码作业。而你没有提到你正在运行的CPU。 Pentium 4或Core 2?我不会感到惊讶。现代酷睿i7,还不错。

你为什么使用FFmpeg?使用Adobe的Flash Media Live Encoder可能更容易。

相关问题