2011-12-15 4 views
2

간단한 질문이지만 대답을 찾는 데 어려움이 있습니다.FFMPEG는 CUDA 또는 다른 하드웨어 가속을 아직 사용합니까?

우리는 트랜스 코딩 엔진 (선호 오픈 소스)을 결정하고 FFMPEG가 하드웨어 가속을 사용하지 않는다고 생각하지만 확실하지 않습니다.

저는 ffmpeg가 Handbrake와 같은 수많은 다른 제품에 사용 된 라이브러리 인 libavcodec을 사용한다고 생각합니다. 나는 그들이 하드웨어 가속을 지원하지 않는다고 믿을 수 없다. 그러므로 나의 질문이다.

답변

0

내가 아는 한 ffmpeg는 CUDA를 사용하지 않는다. 궁금한 점이 있다면 CoreAVC Video Decoder은 H.264 디코더에 이러한 옵션이있다.

0

저는 Loiloscope를 사용합니다. CUDA는 최초 출시 이후 가속화 된 트랜스 코드를 선보였습니다.

1

libavcodec에는 클라이언트에서 하드웨어 디코딩을 구현할 수있는 API가 있습니다. 나는 핸드 브레이크가 그것을지지한다고 생각하지 않는다.

이것은 이 아닙니다.은 CUDA 커널이나 다른 종류의 SIMD 언어를 사용합니다.이 모든 것은 작업에 쓸모가 없습니다. GPU (또는 최신 CPU)와 함께 패키지 된 전용 디코더 하드웨어를 사용합니다. CUDA는 액세스하는 API를 제공하는데, 이것이 바로 "CUDA 지원"이 의미하는 것입니다.

0

avcodec_find_decoder()를 호출하여 디코더를 가져 오는 경우 FFmpeg는 디코딩 할 하드웨어 가속을 사용하지 않습니다. 대신 특정 하드웨어 디코더로 avcodec_find_decoder_by_name()을 호출하면 GPU 활용도가 높아집니다. 예 :

AVCodec *avcodec_h264dec = avcodec_find_decoder_by_name("h264_cuvid");