Intel-FFmpeg-Plugin / Intel_FFmpeg_plugins

mirror of git://source.ffmpeg.org/ffmpeg.git
http://ffmpeg.org
Other
35 stars 19 forks source link

SW Decoding -> QSVVPP -> QSV Encoding fails #19

Closed ghost closed 6 years ago

ghost commented 6 years ago

Hi,

it looks like that this version does not support the combination described in the title. Here is an output using FFmpeg:

/usr/local/bin/ffmpeg -y -i /workspace/files/in/in006.mp4 -an -vcodec h264_qsv -preset slow -profile:v high -level:v 31 -g 72 -aspect 16/9 -look_ahead 1 -look_ahead_depth 30 -b:v 2000000 -vsync 1 -r 24.000000 -vf '[main]vpp_qsv=w=1280:h=720[out]' out.mp4 ffmpeg version n3.4-dev-2821-ga597e05 Copyright (c) 2000-2017 the FFmpeg developers built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.5) 20160609 configuration: --enable-gpl --enable-nonfree --enable-libx264 --enable-shared --enable-libmfx --enable-libfdk-aac --enable-vaapi --enable-openssl libavutil 55. 78.100 / 55. 78.100 libavcodec 57.107.100 / 57.107.100 libavformat 57. 83.100 / 57. 83.100 libavdevice 57. 10.100 / 57. 10.100 libavfilter 6.107.100 / 6.107.100 libswscale 4. 8.100 / 4. 8.100 libswresample 2. 9.100 / 2. 9.100 libpostproc 54. 7.100 / 54. 7.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/workspace/files/in/in006.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf57.71.100 Duration: 00:02:18.56, start: 0.000000, bitrate: 6145 kb/s Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 6013 kb/s, 23.98 fps, 23.98 tbr, 11988 tbn, 47.95 tbc (default) Metadata: handler_name : VideoHandler Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 127 kb/s (default) Metadata: handler_name : SoundHandler Stream mapping: Stream #0:0 -> #0:0 (h264 (native) -> h264 (h264_qsv)) Press [q] to stop, [?] for help [Parsed_vpp_qsv_0 @ 0x1f2a100] No hw context provided. [Parsed_vpp_qsv_0 @ 0x1f2a100] Failed to configure output pad on Parsed_vpp_qsv_0 Error reinitializing filters! Failed to inject frame into filter network: Invalid argument Error while processing the decoded data for stream #0:0 Conversion failed!


It also fails with -hwaccel qsv

lizhong1008 commented 6 years ago

The 3.4.1 branch is not ready now (see https://github.com/Intel-FFmpeg-Plugin/Intel_FFmpeg_plugins/wiki#introduction ). Is it ok for you to use 3.3.1 branch now? I'll reply when 3.4.1 branch is ok.

lizhong1008 commented 6 years ago

"It also fails with -hwaccel qsv" It works for me by adding "-hwaccel qsv -c:v h264_qsv ": ./ffmpeg -hwaccel qsv -c:v h264_qsv -y -i /samba/anonymous/Videos/test.h264 -an -vcodec h264_qsv -preset slow -profile:v high -level:v 31 -g 72 -aspect 16/9 -look_ahead 1 -look_ahead_depth 30 -b:v 2000000 -vsync 1 -r 24.000000 -vf '[main]vpp_qsv=w=1280:h=720[out]' out.mp4

ghost commented 6 years ago

Hi,

adding "-hwaccel qsv -c:v h264_qsv" means that h264 QSV decoding is enabled. What I report, is that it won't work when h264 QSV decoding is not enabled.

Understood for the 3.4.1 branch, can you please fix this feature in it ?

THanks

lizhong1008 commented 6 years ago

@ViGill , yes, we will fix this issue of 3.4.1 branch. Thanks for reporting this issue.

ghost commented 6 years ago

Hi,

it looks fine now using:

-init_hw_device qsv=foo -filter_hw_device foo -vf format=nv12,hwupload

with latest commits!

lizhong1008 commented 6 years ago

@ViGill , great! Is it ok to close this issue now?

ghost commented 6 years ago

Yes thanks!