ffmpeg rtmp流占用100%CPU

ffmpeg rtmp流占用100%CPU,ffmpeg,Ffmpeg,我正在创建一个小脚本来在rtmp服务器上传输图像,但是FFMPEG命令占用了100%的CPU。请看一下我的密码 ffmpeg -f lavfi -i anullsrc=channel_layout=stereo:sample_rate=44100 -loop 1 -i "Digital-Wallet-.jpg" -t 00:30:00 -r 1 -c:v libx264 -c:a aac -preset:v ultrafast -pix_fmt yuv420p -f flv "rtmp://

我正在创建一个小脚本来在rtmp服务器上传输图像,但是FFMPEG命令占用了100%的CPU。请看一下我的密码

ffmpeg -f lavfi -i anullsrc=channel_layout=stereo:sample_rate=44100 -loop 1 -i "Digital-Wallet-.jpg" -t 00:30:00 -r 1 -c:v  libx264 -c:a aac -preset:v ultrafast  -pix_fmt yuv420p -f flv "rtmp://rtmpserver"

编码是CPU密集型的。删除
-r1
并添加
-framerate1
-re
-shortest

ffmpeg -f lavfi -i anullsrc -loop 1 -framerate 1 -re -i "Digital-Wallet-.jpg" -t 00:30:00 -c:v libx264 -c:a aac -preset:v ultrafast -pix_fmt yuv420p -shortest -f flv "rtmp://rtmpserver"
  • 默认图像解复用器帧速率为25,因此您的命令不必要地将每秒25帧转换为每秒1帧,这是低效的。上述更改修复了这一问题

  • -re
    会将输入的读取速度降低到输入的本机帧速率。它对于实时输出和实时流媒体非常有用。否则,
    ffmpeg
    将尝试尽可能快地编码

  • 我添加了
    -shortest
    以在最短流结束时结束输出(图像),因为anullsrc被设置为无限期编码


编码是CPU密集型的。删除
-r1
并添加
-framerate1
-re
-shortest

ffmpeg -f lavfi -i anullsrc -loop 1 -framerate 1 -re -i "Digital-Wallet-.jpg" -t 00:30:00 -c:v libx264 -c:a aac -preset:v ultrafast -pix_fmt yuv420p -shortest -f flv "rtmp://rtmpserver"
  • 默认图像解复用器帧速率为25,因此您的命令不必要地将每秒25帧转换为每秒1帧,这是低效的。上述更改修复了这一问题

  • -re
    会将输入的读取速度降低到输入的本机帧速率。它对于实时输出和实时流媒体非常有用。否则,
    ffmpeg
    将尝试尽可能快地编码

  • 我添加了
    -shortest
    以在最短流结束时结束输出(图像),因为anullsrc被设置为无限期编码


还有一个问题,你知道我们如何为android编译FFMPEG吗?@RaviKumar抱歉,我不知道。可能很多Android上的FFmpeg在这个网站上编译问题/答案。我有一个问题。我想流一个视频文件在rtmp和该视频文件将不断更新新的内容。你知道我们怎样才能做到吗?请帮忙…还有一个问题,你知道我们如何为android编译FFMPEG吗?@RaviKumar抱歉,我不知道。可能很多Android上的FFmpeg在这个网站上编译问题/答案。我有一个问题。我想流一个视频文件在rtmp和该视频文件将不断更新新的内容。你知道我们怎样才能做到吗?请帮忙。。。