searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

ffmpeg解码gpu加速实践

2024-06-12 08:11:22
15
0

ffmpeg是流媒体主流处理框架之一,它具备强大的流媒体处理能力。

本实践聚焦于如何高效进行视频流解码并进行对比验证CPU解码和GPU解码加速影响。

考虑到解码性能对比,本实践采用跳25帧的方式解码。

CPU解码

不限制cpu数量

ffmpeg -i jc.mp4 -f rawvideo -pix_fmt rgb24 -r 1 pipe: | cat > out.mp4

限制cpu数量

限制cpu数量为1

ffmpeg -i j1.mp4 -f rawvideo -pix_fmt rgb24 -r 1 pipe: | cat > out.mp4

GPU解码

不限制cpu数量

ffmpeg  -hwaccel cuda -i j1.mp4 -f rawvideo -pix_fmt yuv420p -r 1 pipe: | cat > out.yuv

限制cpu数量

限制cpu数量为1

ffmpeg  -hwaccel cuda -i jc.mp4 -f rawvideo -pix_fmt yuv420p -r 1 pipe: | cat > out.yuv

实验结果

测试对比视频流解码至buffer,并且跳帧25的情况,即每秒只处理一帧,两路表示启动两个进程。

视频流路数

cpu数量

解码方式

fps

speed

cpu

gpu

1

不限制

CPU

23

22.8x

535%

-

2

不限制

CPU

23

23.1x

1080%

-

1

1

CPU

5.1

5.1x

97.3%

-

2

1

CPU

2.6

2.6x

97.3%

-

1

不限制

GPU

26

26x

102%

25%

2

不限制

GPU

25

25.2x

213%

50%

1

1

GPU

22

22.3x

92%

18%

2

1

GPU

11

10.7x

94%

22%

结论

  1. 单路纯CPU解码CPU利用率535%,多路就会成为瓶颈,单路GPU解码情况下,CPU资源利用率约为102%,分析主要用于GPU->CPU拷贝和frame帧像素转换;
  2. 纯CPU解码下,视频流路数与CPU利用率成线性关系;
  3. GPU解码下,视频流路数与GPU利用率、CPU利用率、显存成线性关系;
0条评论
0 / 1000
stone
4文章数
0粉丝数
stone
4 文章 | 0 粉丝
stone
4文章数
0粉丝数
stone
4 文章 | 0 粉丝
原创

ffmpeg解码gpu加速实践

2024-06-12 08:11:22
15
0

ffmpeg是流媒体主流处理框架之一,它具备强大的流媒体处理能力。

本实践聚焦于如何高效进行视频流解码并进行对比验证CPU解码和GPU解码加速影响。

考虑到解码性能对比,本实践采用跳25帧的方式解码。

CPU解码

不限制cpu数量

ffmpeg -i jc.mp4 -f rawvideo -pix_fmt rgb24 -r 1 pipe: | cat > out.mp4

限制cpu数量

限制cpu数量为1

ffmpeg -i j1.mp4 -f rawvideo -pix_fmt rgb24 -r 1 pipe: | cat > out.mp4

GPU解码

不限制cpu数量

ffmpeg  -hwaccel cuda -i j1.mp4 -f rawvideo -pix_fmt yuv420p -r 1 pipe: | cat > out.yuv

限制cpu数量

限制cpu数量为1

ffmpeg  -hwaccel cuda -i jc.mp4 -f rawvideo -pix_fmt yuv420p -r 1 pipe: | cat > out.yuv

实验结果

测试对比视频流解码至buffer,并且跳帧25的情况,即每秒只处理一帧,两路表示启动两个进程。

视频流路数

cpu数量

解码方式

fps

speed

cpu

gpu

1

不限制

CPU

23

22.8x

535%

-

2

不限制

CPU

23

23.1x

1080%

-

1

1

CPU

5.1

5.1x

97.3%

-

2

1

CPU

2.6

2.6x

97.3%

-

1

不限制

GPU

26

26x

102%

25%

2

不限制

GPU

25

25.2x

213%

50%

1

1

GPU

22

22.3x

92%

18%

2

1

GPU

11

10.7x

94%

22%

结论

  1. 单路纯CPU解码CPU利用率535%,多路就会成为瓶颈,单路GPU解码情况下,CPU资源利用率约为102%,分析主要用于GPU->CPU拷贝和frame帧像素转换;
  2. 纯CPU解码下,视频流路数与CPU利用率成线性关系;
  3. GPU解码下,视频流路数与GPU利用率、CPU利用率、显存成线性关系;
文章来自个人专栏
stone
4 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0