linux下FFmpeg命令将rtsp码流转码为rtmp,耗费cpu过大问题

@风轻云淡_ 2019-03-21 02:10:08
问题描述:linux下4.1版本的ffmpeg将摄像头rtsp流转为rtmp流然后推给页面。转码过程中发现其大量耗费cpu,由于对相关参数不是很了解,百度好酒也没有搜索到合适方法,特放在此,希望大家集思广益。或者说配备什么级别的服务器才能胜任这个任务。。
这是使用的命令,据观察使用了多线程,cpu占到200%以上:

ffmpeg -re -rtsp_transport tcp -i "rtsp://aaa.com" -f flv -vcodec libx264 -vprofile baseline -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -s 1280x720 -q 10 "rtmp://12.13.14.156:8090/live/room"















...全文
3807 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_42460115 2019-11-23
  • 打赏
  • 举报
回复 2
引用 6 楼 csulizhang 的回复:
[quote=引用 5 楼 @风轻云淡_ 的回复:] [quote=引用 4 楼 csulizhang 的回复:]
你这还只是一个摄像头吧,10个呢,50个呢,这样无限扩展硬件始终不是个办法呀[/quote] 摄像头大于4个的时候改用副码流,耗费资源量会大大降低。另外我当时转的是分辨率很大的视频流,你如非必要,转普通的1080P或者更低的就好了。[/quote] 我现在就遇到这个问题,我有50个监控摄像头,要用FFmpeg把RTSP转RTMP推流出去,FFmpeg支持多进程,但是转码消耗CPU资源太多(优化之后,每个进程也要占10%左右的CPU资源),不知道楼主有没有做过类似的需求,有没有可能只用一个FFmpeg推送,实现那种换台功能[/quote] 我现在有个相同的需求,请问实现了吗
csulizhang 2019-08-19
  • 打赏
  • 举报
回复
引用 5 楼 @风轻云淡_ 的回复:
[quote=引用 4 楼 csulizhang 的回复:]

你这还只是一个摄像头吧,10个呢,50个呢,这样无限扩展硬件始终不是个办法呀[/quote]
摄像头大于4个的时候改用副码流,耗费资源量会大大降低。另外我当时转的是分辨率很大的视频流,你如非必要,转普通的1080P或者更低的就好了。[/quote]

我现在就遇到这个问题,我有50个监控摄像头,要用FFmpeg把RTSP转RTMP推流出去,FFmpeg支持多进程,但是转码消耗CPU资源太多(优化之后,每个进程也要占10%左右的CPU资源),不知道楼主有没有做过类似的需求,有没有可能只用一个FFmpeg推送,实现那种换台功能
@风轻云淡_ 2019-08-19
  • 打赏
  • 举报
回复
引用 4 楼 csulizhang 的回复:

你这还只是一个摄像头吧,10个呢,50个呢,这样无限扩展硬件始终不是个办法呀[/quote]
摄像头大于4个的时候改用副码流,耗费资源量会大大降低。另外我当时转的是分辨率很大的视频流,你如非必要,转普通的1080P或者更低的就好了。
csulizhang 2019-08-19
  • 打赏
  • 举报
回复
引用 3 楼 @风轻云淡_ 的回复:
[quote=引用 2 楼 smwhotjay 的回复:]
转码最耗cpu 无解。除非用源头采用直播格式h264 aac直接复制

转码确实很耗cpu,我直接增加一倍核心数,无敌了[/quote]
你这还只是一个摄像头吧,10个呢,50个呢,这样无限扩展硬件始终不是个办法呀
@风轻云淡_ 2019-03-25
  • 打赏
  • 举报
回复
引用 2 楼 smwhotjay 的回复:
转码最耗cpu 无解。除非用源头采用直播格式h264 aac直接复制

转码确实很耗cpu,我直接增加一倍核心数,无敌了
smwhotjay 2019-03-21
  • 打赏
  • 举报
回复
转码最耗cpu 无解。除非用源头采用直播格式h264 aac直接复制
@风轻云淡_ 2019-03-21
  • 打赏
  • 举报
回复
当前cpu核心数为4核8线程。

24,860

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧