-
Notifications
You must be signed in to change notification settings - Fork 29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support for Intel Arc with VAAPI #208
Comments
We definitely should have some better tools to debug ffmpeg calls. I'll try to add some logging options when I get some time. The way I've used vaapi, somewhat successfully, before was more like:
|
I tried that, getting a similar error:
|
It's the vmaf run which is failing, which implies encoding ran successfully. If you run with |
I've added the full ffmpeg command to the error output in 58384eb. Can you install from the latest git commit and retry to show the exact failing vmaf call? |
I'm sorry, I made a mistake in my last comment. The command you sent did work:
I still had my script that changed the ffmpeg command, that's why it returned an error. As you can see though, now I have a different problem - the VMAF score is way too low. When I run auto-encode I get this:
I don't think it's an issue with the video file - I used the same one with av1_nvenc on a different machine and it found a suitable crf value just fine. |
With the latest commit 6d66b20 you can run with I think in this case vmaf is not liking the input, it may be possible to jiggle it so it works or perhaps it is some issue with the encoder that causes this. If you can find better working ffmpeg vmaf invocation I can perhaps address this here. |
A bit of a mess, but here's the command I used and the output:
|
Thanks. If you use |
I checked the sample files that came from |
That is likely the pain with variable framerate in your source file. |
The framerate is constant, 23.976. Checked the original file with both mpv and mediainfo. |
It's possible that the codec in the test.mkv isn't compatible with hwaccel=vaapi or the file is corrupt at some point. If frames are corrupt, ffmpeg will show it. Then I would do |
I'm trying to make this work with the av1_vaapi encoder so it will utilise my Intel Arc A380 card. The transcode command that worked for me manually is this:
ffmpeg -vaapi_device /dev/dri/renderD128 -i test.mkv -vf 'format=nv12|vaapi,hwupload' -c:v av1_vaapi -qp 28 -sn test.av1.mkv
I tried running
ab-av1 auto-encode --encoder av1_vaapi -i test.mkv -o test.av1.mkv
and I'm getting this error:I then tried
ab-av1 auto-encode -i test.mkv --encoder av1_vaapi --enc-input vaapi_device=/dev/dri/renderD128 --vfilter 'format=nv12|vaapi,hwupload' -o test.av1.mkv
and got this error:It looks like ffmpeg is not getting the
vaapi_device
parameter. I tried to add it manually by creating a shell script that will prepend it whenever the ffmpeg command is invoked, and got this error:This is the shell script I used:
I then also tried to add
-hwaccel vaapi -hwaccel_output_format vaapi -vaapi_device /dev/dri/renderD128
to every ffmpeg call with my script, and got this error when using the same auto-encode command as above:The ffmpeg command it's failing to run is this:
ffmpeg -hwaccel vaapi -hwaccel_output_format vaapi -vaapi_device /dev/dri/renderD128 -r 24 -i /.ab-av1-FjQUZnSHXUZ5/test.sample290+480f.av1_vaapi.crf32.mkv -r 24 -i /.ab-av1-FjQUZnSHXUZ5/test.sample290+480f.mkv -filter_complex [0:v]format=yuv420p10le,setpts=PTS-STARTPTS[dis];[1:v]format=yuv420p10le,format=nv12|vaapi,hwupload,setpts=PTS-STARTPTS[ref];[dis][ref]libvmaf=n_threads=12 -f null -
I'm not sure what else to try.
The text was updated successfully, but these errors were encountered: