首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用FFMPEG多GPU进程

如何使用FFMPEG多GPU进程
EN

Stack Overflow用户
提问于 2021-01-31 19:01:45
回答 1查看 1.8K关注 0票数 0

我有个问题,找不到合适的答案。

它是关于使用多GPU过程的。

我有3张显卡,你可以看到:

如果图像未加载,请使用此图像链接:https://i.stack.imgur.com/msR83.jpg 在这里输入链接描述

我的问题是:当我使用cuda运行多个ffmpeg命令时,所有进程都分配给第一个GPU。

如下图所示:

如果图像未加载,请使用此图像链接:https://i.stack.imgur.com/PfYfz.jpg

你看?所有6个过程分配给第一个GPU。

我真搞不懂怎么才能修好它。

我的FFMPEG代码是:

代码语言:javascript
运行
复制
ffmpeg -y -vsync 0 -hwaccel cuda -hwaccel_output_format cuda -i my-video.mp4 \
  -vf scale_npp=w=426:h=240 -c:v h264_nvenc -profile:v main -b:v 400k -sc_threshold 0 -g 25 \
  -c:a aac -b:a 64k -ar 48000 \
  -f hls -hls_time 6 -hls_playlist_type vod \
  -hls_allow_cache 1 -hls_key_info_file encription.keyinfo \
  -hls_segment_filename f-0-seg-%d.ts f-0.m3u8

我在同一时间运行6段不同视频的顶级FFMPEG代码。

请帮忙找出答案。通过分享你的知识或者一些可以帮助我的链接。

非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-31 19:51:07

从我所能判断的情况来看,这个过程似乎相当快:https://developer.nvidia.com/blog/nvidia-ffmpeg-transcoding-guide/

在一个系统中使用多个GPU时,必须将编码和解码工作显式分配给GPU。GPU由其索引号标识;默认情况下,所有工作都是在索引0的GPU上执行的。使用以下命令获取系统中所有NVIDIA GPU及其相应ID号的列表:

代码语言:javascript
运行
复制
ffmpeg -vsync 0 -i input.mp4 -c:v h264_nvenc -gpu list -f null –

知道索引后,可以使用-hwaccel_device索引标志来设置用于解码和编码的活动GPU。在下面的示例中,工作将在带有索引1的gpu上执行。

代码语言:javascript
运行
复制
ffmpeg -vsync 0 -hwaccel cuvid -hwaccel_device 1 -c:v h264_cuvid -i input.mp4 -c:a copy -c:v h264_nvenc -b:v 5M output.mp4
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65983094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档