이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 17009|회답: 4

Windows 내에서 GPU 가속 ffmpeg를 사용해 작업을 처리하세요

[링크 복사]
2019-11-7 21:08:29에 게시됨 | | | |
ffmpeg 다운로드

공식 웹사이트 다운로드 페이지:
하이퍼링크 로그인이 보입니다.
컴파일된 버전을 다운로드하고 페이지를 다운로드하는 것을 권장합니다:
하이퍼링크 로그인이 보입니다.
저는 보통 최신 버전(날짜 이름을 따서 명명됨)을 다운로드하는 걸 선호하고, 물론 안정 버전(버전 번호 이름)도 있습니다.



CUDA 다운로드

CUDA는 GPU가 관련 작업을 수행할 수 있도록 하는 드라이버로, 우리는 GPU를 직접 제어하지 않고 드라이버를 통해 동작하는 애플리케이션을 개발합니다.
하이퍼링크 로그인이 보입니다.
여기서는 아래에 보이는 버전을 선택합니다:
물론, 아래 링크를 클릭해 제가 다운로드했을 때 바로 설정으로 이동할 수도 있습니다.
하이퍼링크 로그인이 보입니다.


다운로드 후에는 꼭 설치하세요. 그러니 소개하지 않겠습니다. 어쨌든 모두 소프트웨어를 개발 중이니까요.

명령

쿼리 명령어
다운로드한 ffmpeg가 cuda를 지원하는지 확인하고, 지원하지 않는다면(제가 다운로드했습니다), 다시 다운로드하거나 직접 컴파일하세요.




테스트 명령어

현재 디렉터리의 0.mp4을 00.mp4로 변환하세요
현재 디렉터리의 0.mp4를 00.mp4로 변환하고 출력 프레임 속도 15(-r 15)와 비트레이트 500k(-b 500k)를 지정합니다.
-hwaccel cuvid: cuvid 하드웨어 가속 사용을 명시합니다
-c:v h264_cuvid: h264_cuvid를 이용한 비디오 디코딩
-c:v h264_nvenc: h264_nvenc 비디오 인코딩
-vf scale_npp=1280:-1: 출력 비디오의 너비와 높이를 지정하세요. 이는 소프트 디코딩에 사용되는 -vf 스케일=x:x와는 다릅니다

다중 그래픽 카드 명령어

GPU 트랜스코딩 효율 테스트
두 개의 인텔-E5-2630v3 CPU와 두 개의 엔비디아 테슬라 M4 그래픽 카드를 가진 서버에서 h264 비디오 트랜스코딩 테스트는 다음과 같이 수행되었습니다:

평균 GPU 트랜스코딩 시간: 8초
평균 CPU 트랜스코딩 시간: 25초

병렬로 트랜스코딩할 때 CPU 소프트 변환의 효율이 향상되고, 세 개의 트랜스코딩 작업이 병렬로 진행될 때 32개의 코어 모두가 모두 사용 중입니다

평균 GPU 트랜스코딩 시간: 8초
평균 CPU 트랜스코딩 시간: 18초

병렬 실행 시 GPU의 트랜스코딩 속도가 증가하지 않는다는 점은 GPU가 동시에 하나의 트랜스코딩 작업만 수행할 수 있음을 보여줍니다. 그렇다면 서버에 여러 개의 그래픽 카드를 삽입할 때, ffmpeg는 병렬 트랜스코딩을 위해 여러 GPU를 사용할까요?
안타깝게도 답은 아니에요.
ffmpeg는 트랜스코딩 작업을 서로 다른 GPU에 자동으로 할당할 수 있는 기능은 없지만, 조사 끝에 트랜스코딩 작업에 사용되는 GPU는 -hwaccel_device 매개변수로 지정할 수 있다는 사실이 밝혀졌습니다!
트랜스코딩 작업을 서로 다른 GPU에 제출하세요

그래픽 0


그래픽 카드1

설명:

-hwaccel_device N: 트랜스코딩 작업을 수행할 GPU를 지정하며, N은 숫자입니다





이전의:[실전 전투] Nginx 기반 도커 이미지 생성
다음:2000년 로고 프로토타입
 집주인| 2019-11-7 21:18:35에 게시됨 |
//参数说明
/*
    * -i filename(input) 소스 파일 디렉터리
    * -y 새 파일을 출력하며, 기존 파일을 강제 덮어쓰기 가능 여부
    * -c 인코더를 지정합니다
    * -fs limit_size(아웃인풋)은 파일 크기의 한계를 바이트로 표현합니다. 한도를 초과한 이후에는 더 이상 바이트 블록을 기록하지 않습니다. 출력 파일의 크기는 요청된 파일 크기보다 약간 큽니다.
    * -s 비디오 비율 4:3 320x240/640x480/800x600 16:9 1280x720, 기본 값 'WXH', 원본 비디오 크기와 동일
    * -vframes number(output)는 출력에 들어가는 비디오 프레임 수를 설정합니다. 별칭: -frames:v
    * -dframes 수(출력)는 출력 데이터프레임의 수를 설정합니다. 별칭: -프레임:d
    * -frames[:stream_specifier] framecount(output, per-stream)는 프레임 수에 따라 스트림에 대한 쓰기를 멈춥니다.
    * -bsf[:stream_specifier] bitstream_filters (output, per-stream)는 출력 파일 스트림 형식을 지정합니다.
예를 들어, h264로 인코딩된 MP4 파일을 출력합니다: ffmpeg -i h264.mp4 -c:v copy -bsf:v h264_mp4toannexb -an out.h264
    * -r 29.97 Zhen rate(변경 가능하며, 비표준 Zhen rate는 소리와 영상이 동기화되지 않도록 15 또는 29.97로만 설정할 수 있습니다)
    *
    */
 집주인| 2019-11-8 15:07:05에 게시됨 |
ffmpeg.exe -hwaccel_device 1 -hwaccel cuvid -i C:\Users\DELL\Desktop\VideoDemo\VideoDemo\VideoDemo\bin\Debug\A14.mp4 -y C:\Users\DELL\DESKTOP\VideoDemo\VideoDemo\bin\Debug\A16.avi

https://blog.csdn.net/Tosonw/article/details/90178195


NVCC --버전

CUVID는 CUVID를 사용하여 디코딩하는 CUDA 기반 비디오 디코딩 라이브러리입니다


Direct3D 장치 생성에 실패했습니다
장치 생성 실패: -1313558101.

ffmpeg 버전은 하드웨어 가속을 올바르게 활성화하려면 동기식 그래픽 카드 드라이버와 대응해야 합니다.


NVIDIA 하드웨어 가속 코덱을 확인해 보세요:

.\ffmpeg.exe -코덱 | SLS NVEC
.\ffmpeg.exe -코덱 | SLS 쿠비드

접두사는 다음과 같은 의미를 가집니다:

접두사 의미
D….. = 지원 디코딩
. E.... = 지원되는 인코딩
.. V... = 비디오 코덱
.. A... = 오디오 코덱
.. S... = 자막 코덱
… 나는.. = 인트라 프레임 전용 코덱
....L. = 손실 압축
….. S = 무손실 압축



ffmpeg.exe -hwaccel_device 1 -hwaccel cuvid -c:v h264_cuvid -i C:\Users\DELL\Desktop\VideoDemo\VideoDemo\VideoDemo\bin\Debug\A14.mp4 -c:v h264_nvenc -y C:\Users\DELL\Desktop\VideoDemo\ 비디오데모\빈\디버그\A16.avi

ffmpeg.exe -hwaccel cuvid -c:v h264_cuvid -i C:\Users\DELL\Desktop\VideoDemo\VideoDemo\VideoDemo\A14.mp4 -c:v h264_nvenc -y C:\Users\DELL\Desktop\VideoDemo\VideoDemo\bin\Debug\ A16.avi


https://developer.nvidia.com/ffmpeg
2023-2-26 12:11:24에 게시됨 |
프롬프트:작가가 차단되거나 삭제되면 콘텐츠가 자동으로 차단됩니다
2023-2-26 12:13:35에 게시됨 |
프롬프트:작가가 차단되거나 삭제되면 콘텐츠가 자동으로 차단됩니다
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com