ffmpeg 转码线程数的控制

转码命令

ffmpeg -threads 1 -i 1080P_daxiongtu_30fps_2D.mp4 -c:v libx264 -s 3840x2160 -b:v 20M -r 120 -profile:v high -preset veryslow -threads 1 -c:a copy -f mp4 rm.mp4 -y

这里配置 编码线程为 1 ,解码线程为 1

 

TOP 分析

通过 top 可以发现单核的 cpu 使用率到了 100%

 

PS 分析

通过 ps 查看 ffmpeg 的线程数,可以看到是一个线程

[root@bogon ~]# ps -T -p 21097
PID SPID TTY TIME CMD
21097 21097 pts/5 00:00:55 ffmpeg

 

PROC 分析

可以看到 Threads 的值为1

[root@bogon ~]# cat /proc/21097/status 
Name:	ffmpeg
State:	R (running)
Tgid:	21097
Ngid:	0
Pid:	21097
PPid:	20392
TracerPid:	0
Uid:	0	0	0	0
Gid:	0	0	0	0
FDSize:	256
Groups:	0 
VmPeak:	 3191924 kB
VmSize:	 3191924 kB
Threads:	1
SigQ:	0/61948
SigPnd:	0000000000000000

Seccomp:	0
Cpus_allowed:	ff
Cpus_allowed_list:	0-7

Mems_allowed_list:	0
voluntary_ctxt_switches:	5
nonvoluntary_ctxt_switches:	3839

 

分析

        ffmpeg 在配置单线程转码过程中是串行处理的方式,media的处理都是在主线程内完成了

        这样的架构在服务器或者是多核机器里面,就会出现cpu利用率不高的情况,发现cpu只用了30%,但是转码缺转不动的情况了;

评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值