mpv-player / mpv

🎥 Command line video player
https://mpv.io
Other
28.32k stars 2.9k forks source link

Encoding/QSV - Current frame rate is unsupported #5872

Open chainikdn opened 6 years ago

chainikdn commented 6 years ago

mpv version and platform

Windows, git version, shinchiro scripts plus libmfx for QSV encoders

Reproduction steps

mpv.com any-video.mkv -o out.mkv --no-audio --no-sub --vf=fps=23.976 --of=matroska --ovc=h264_qsv --ovcopts=b=2000000

Actual behavior

Encoding fails: [ffmpeg] h264_qsv: Current frame rate is unsupported [ffmpeg] h264_qsv: some encoding parameters are not supported by the QSV runtime. Please double check the input parameters.

It fails the same way with or w/o "--vf=fps=23.976" part. In earlier versions it used to work with --ofps=23.976.

chainikdn commented 6 years ago

0.28

mpv.com any-video.mkv -o out.mkv --ovc=h264_qsv --ovcopts=b=2000000

[encode-lavc] option --ofps not specified and fps could not be inferred, using guess of 24000/1 [ffmpeg] h264_qsv: Selected ratecontrol mode is not supported by the QSV runtime. Choose a different mode.

mpv.com any-video.mkv -o out.mkv --ovc=h264_qsv --ovcopts=b=2000000 --ofps=23.976

Works!

git~0.29

mpv.com any-video.mkv -o out.mkv --ovc=h264_qsv --ovcopts=b=2000000 mpv.com any-video.mkv -o out.mkv --ovc=h264_qsv --ovcopts=b=2000000 --vf=fps=23.976

[ffmpeg] h264_qsv: Current frame rate is unsupported

chainikdn commented 6 years ago

It appears that "time_base" is required for QSV. Not sure about other HW encoders :/ This works:

mpv.com any-video.mkv -o out.mkv --ovc=h264_qsv --ovcopts=b=2000000,time_base=1000/23976

However resulting video is now always "variable frame rate" (as reported by MediaInfo), even with CFR input, "vf=fps=xxx" filter and libx264 encoder.