Opened 7 years ago

Closed 4 years ago

#4658 closed enhancement (fixed)

QSV Decoding + Video Post Processing (VPP) support

Reported by: TheTroll Owned by:
Priority: normal Component: avcodec
Version: git-master Keywords: qsv
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Summary of the bug:
The latest GIT as of 2015-06-22 supports QSV encoding quite properly.

Though QSV decoding does not work at all.
In addition, there is no use of the VPP functions (like deinterlacing, scaling,...).

It would be nice to have this working, to do a fully HW accelerated transcoding.

Change History (8)

in reply to:  description comment:1 by Carl Eugen Hoyos, 7 years ago

Component: undeterminedavcodec
Keywords: intel quicksync transcoding removed

Replying to TheTroll:

Though QSV decoding does not work at all.

Is this a regression or did it never work?

comment:2 by Timo R., 7 years ago

As far as i'm aware, there is not and never was a qsv based decoder.
Hardware decoding is done via DXVA on Windows.

Last edited 7 years ago by Timo R. (previous) (diff)

comment:3 by TheTroll, 7 years ago

Well there is a qsvdec_h264.c file...
The implementation misses some key calls like the DecodeHeader function for instance.

So if it has indeed worked, I am not sure how.. or only in in a very specific situation

comment:4 by TheTroll, 7 years ago

Examples on how to do VPP and decoding are in the file:

MediaSamples_Linux_6.0.16043138.138

that you can get from intel site.

HW encoding is great, I can transcode from 1080i H264 from 720p H264, using ~0% CPU for the encoding part.

Though, decoding+deinterlacing+scaling takes almosy 30% CPU on a Core i7-4790k :/

comment:5 by bordon, 6 years ago

Hope the offical can add QSV Decoding function as soos as possible.

comment:6 by TheTroll, 6 years ago

Hey,

coming back on this thread, QSV decoding works now quite well:
Try the following :

ffmpeg -c:v h264_qsv -i in_h264.ts -b:v 1000k -maxrate 1000k -c:v h264_qsv out_qsv.ts

comment:7 by Zhong,Li, 4 years ago

VPP is supported from FFmpeg 3.3, scaling and deinterlacing filters were supported. And from ffmpeg 4.0, qsv overlay was supported.
Here is an example of a qsv transcoding pipeline with decoding/scaling/encoding:
ffmpeg -hwaccel qsv -c:v h264_qsv -i "testvid.mp4" -vf "scale_qsv=640:360" -b:v 800k -c:v h264_qsv -c:a copy -y "testoutput.mp4"

Last edited 4 years ago by Zhong,Li (previous) (diff)

comment:8 by Zhong,Li, 4 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.