如何在生成HLS段时优化FFMPEG h264 / aac转换

时间:2014-01-07 07:14:37

标签: ffmpeg red5 http-streaming

我正在使用FFMPEG生成HLS段。这是我正在使用的命令:

ffmpeg -i“rtmp:// localhost / oflaDemo / 33 / hlsopt3 live = 1”-y -c:v libx264 -b:v 1000k -vprofile baseline -preset medium -x264opts level = 41 -threads 4 -s 480x360 -map 0:v -c:一个libfaac -b:一个160000 -ac 1 -hls_time 3 -hls_list_size 3 -hls_wrap 10 -start_number 1 hlsopt3.m3u8

我正在使用Ubuntu 12.04并使用RED5 1.0.2作为我的流媒体服务器,我想在Android和ios设备上流式传输视频。但是设备上的播放非常不稳定,它们不能平滑地播放视频。此外,我的服务器的CPU利用率超过100%。

经过这么多研究后我发现CPU利用率是由H264 / mpeg-4 aac转换造成的,但是没有进行转换就不会在Ios和Android设备上播放。

所以请建议我任何解决方案。如何在移动设备上顺利播放并节省CPU利用率。

请帮助我,我已经差不多花了10天时间。

任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:3)

我找到了FFMPEG使用100%CPU以及为什么设备上显示生涩视频的原因。这是因为我没有提到帧率。

-r 24

ffmpeg -i "rtmp://localhost/oflaDemo/33/hlsopt6 live=1" -y -c:v libx264 \
 -b:v 1000k -r 24 -vprofile baseline -preset medium -x264opts level=41 \
 -threads 4 -s 480x360 -map 0:v -c:a libfaac -b:a 160000 -ac 1 -hls_time 3 \
 -hls_list_size 2 -hls_wrap 10 -start_number 1 hlsopt6.m3u8

现在它可以在所有设备上平滑播放,而且FFMPEG占用的CPU也更少。