1 (edited by Luc 10-05-2020 01:15:04)

Topic: Annoying stutter in short videos

SVP 4 Pro actually works wonderfully for me.

But I can't get one thing under control:

Short videos (4 - 6 seconds or similar) stutters at the beginning and hang at the end. It is annoying to play them in a loop.

So far, this has worked very well with VLC without SVP. I have no problems there, the short video plays without stutter one after the other.

Here is a sample video:

Left VLC without SVP in a continuous loop without problems.
Right MPC-HC with SVP with the stutter at the end before repeating:

https://gfycat.com/adventurousacidicguppy

I have read everything I could find and have not yet found a solution to fix this stutter. All settings are reset now.

My wish is to play a short video without delays and stutter in a loop with SVP in MPC-HC.
Does anyone have a solution how I can fix this?

My specs:
AMD Ryzen 5 2600 six-core processor
16Gb Ram
NVIDEA GeForce GTX 980
165hz monitor

Re: Annoying stutter in short videos

It working so. At beginning video playback SVP must to detect framerate, select profile and start to calcuate new frames to frame buffer then start to display them.
You will see stutter at the beginning.
If you want to watch high framerate video without stutter in loop then transcode this video first via SVP and watch its interpolated version from disk.

Re: Annoying stutter in short videos

Ok wow, that was a quick answer.  Thank you! 
I think that's a pity, but understandable.
I will try that soon.

Can I set up a converting queue?
Does the image lose quality after converting?

Thanks again.

Re: Annoying stutter in short videos

> Can I set up a converting queue?
Yes.
https://www.svp-team.com/wiki/Manual:SV … code_Usage

While encoding, you can enqueue more files as well as pause or cancel transcoding process.

> Does the image lose quality after converting?
Yes.
It is full transcoding. With completely decoding source frames and encoding them together with interpolated frames.
You can minimize quality lose by adjusting encode settings. Start from settings by default. It is most common settings to get not very big file size with not visible quality lose for human eyes.

5 (edited by Luc 11-05-2020 19:45:55)

Re: Annoying stutter in short videos

Wow!
I am very excited about how this works incredibly well with the standard settings.
In fact, I don't see any difference in the image quality.
Thanks for that! Very very good job.


In one test, however, there was a "failed".

I saw this in the log:

[mp4 @ 06fad900] Could not find tag for codec pcm_s16le in stream #1, codec not currently supported in container

Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument

===== ffmpeg exited with code 1 =====


This is a mp4 60fps video.

It does not work with the basic settings H.264 software or H.264 NVENC.
(H.265 doesn't work for me with any video)


May I ask how I can fix this?

Thank you!




__________________________________________

21:32:22.286: ===== Starting mpv ======
21:32:22.286: Command line: E:\SVP4\mpv64\mpv.exe C:/Users/Luc/Desktop/V/aaxyd test.mp4 --o=C:/Users/Luc/Desktop/V/aaxyd test.SVP.temporary.mkv --no-audio --no-sub --no-sub-auto --input-ipc-server=mpvencodepipe --input-media-keys=no --no-msg-color --vf=vapoursynth:[C:\Users\Luc\AppData\Roaming\SVP4\scripts\ffff.py]:4:12 --of=matroska --ovc=libx264 --ovcopts=crf=12,preset=slow,threads=12
21:32:22.319: Warning: option --o is deprecated and might be removed in the future (lack of maintainer).
21:32:22.324: (+) Video --vid=1 (*) (h264 1920x1080 60.000fps)
21:32:22.325: Audio --aid=1 --alang=eng (*) (pcm_s16le 2ch 48000Hz)
21:32:22.649: VO: [lavc] 1920x1080 yuv420p
21:32:22.650: [vo/lavc] Opening encoder: libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 [libx264]
21:32:22.650: [ffmpeg] libx264: MB rate (195840000) > level limit (16711680)
21:32:22.671: [encode] Opening output file: C:/Users/Luc/Desktop/V/aaxyd test.SVP.temporary.mkv
21:32:22.672: [encode] Opening muxer: Matroska [matroska]
21:32:22.694: V: 00:00:00 / 00:00:21 (0%) {0.0min 0.0MB}
21:33:22.719: V: 00:00:10 / 00:00:21 (47%) {1.1min 27.4fps 59.9MB}
21:34:22.773: V: 00:00:20 / 00:00:21 (94%) {0.1min 27.6fps 66.3MB}
21:34:31.867: [encode] video: encoded 73483221 bytes
21:34:31.867: [encode] audio: encoded 0 bytes
21:34:31.867: [encode] muxing overhead 27319 bytes
21:34:31.872: Exiting... (End of file)
21:34:31.945: ===== Starting ffmpeg ======
21:34:31.945: Command line: E:\SVP4\utils\ffmpeg.exe -y -i C:/Users/Luc/Desktop/V/aaxyd test.mp4 -i C:/Users/Luc/Desktop/V/aaxyd test.SVP.temporary.mkv -map 1:v -map 0:a? -map 0:s? -vcodec copy -acodec copy -scodec copy C:/Users/Luc/Desktop/V/aaxyd test.SVP.mp4
21:34:32.013: ffmpeg version 4.2.1 Copyright (c) 2000-2019 the FFmpeg developers
21:34:32.013: built with gcc 9.1.1 (GCC) 20190807
21:34:32.013: configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt
21:34:32.013: libavutil 56. 31.100 / 56. 31.100
21:34:32.013: libavcodec 58. 54.100 / 58. 54.100
21:34:32.013: libavformat 58. 29.100 / 58. 29.100
21:34:32.013: libavdevice 58. 8.100 / 58. 8.100
21:34:32.013: libavfilter 7. 57.100 / 7. 57.100
21:34:32.013: libswscale 5. 5.100 / 5. 5.100
21:34:32.013: libswresample 3. 5.100 / 3. 5.100
21:34:32.013: libpostproc 55. 5.100 / 55. 5.100
21:34:32.040: Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C:/Users/Luc/Desktop/V/aaxyd test.mp4':
21:34:32.040: Metadata:
21:34:32.040: major_brand : qt
21:34:32.040: minor_version : 512
21:34:32.040: compatible_brands: qt
21:34:32.040: encoder : Lavf57.25.100
21:34:32.040: Duration: 00:00:21.68, start: 0.000000, bitrate: 28439 kb/s
21:34:32.040: Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(bt709), 1920x1080, 26897 kb/s, SAR 1:1 DAR 16:9, 60 fps, 60 tbr, 15360 tbn, 120 tbc (default)
21:34:32.040: Metadata:
21:34:32.040: handler_name : VideoHandler
21:34:32.040: timecode : 01:00:00:00
21:34:32.040: Stream #0:1(eng): Audio: pcm_s16le (lpcm / 0x6D63706C), 48000 Hz, stereo, s16, 1536 kb/s (default)
21:34:32.040: Metadata:
21:34:32.040: handler_name : SoundHandler
21:34:32.040: Stream #0:2(eng): Data: none (tmcd / 0x64636D74), 0 kb/s
21:34:32.040: Metadata:
21:34:32.040: handler_name : TimeCodeHandler
21:34:32.040: timecode : 01:00:00:00
21:34:32.069: Input #1, matroska,webm, from 'C:/Users/Luc/Desktop/V/aaxyd test.SVP.temporary.mkv':
21:34:32.069: Metadata:
21:34:32.069: COMPATIBLE_BRANDS: qt
21:34:32.069: MAJOR_BRAND : qt
21:34:32.069: MINOR_VERSION : 512
21:34:32.069: ENCODER : Lavf58.29.100
21:34:32.069: Duration: 00:00:21.66, start: 0.000000, bitrate: 27149 kb/s
21:34:32.069: Stream #1:0: Video: h264 (High), yuv420p(tv, bt709/unknown/unknown, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 1k tbr, 1k tbn, 48k tbc (default)
21:34:32.069: Metadata:
21:34:32.069: DURATION : 00:00:21.661000000
21:34:32.070: [mp4 @ 06fad900] Could not find tag for codec pcm_s16le in stream #1, codec not currently supported in container
21:34:32.070: Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
21:34:32.070: Stream mapping:
21:34:32.070: Stream #1:0 -> #0:0 (copy)
21:34:32.070: Stream #0:1 -> #0:1 (copy)
21:34:32.070: Last message repeated 1 times
21:34:32.075: (!!!) Intermediate file (video only): C:\Users\Luc\Desktop\V\aaxyd test.SVP.temporary.mkv
21:34:32.075: ===== ffmpeg exited with code 1 =====

6 (edited by Luc 11-05-2020 23:05:55)

Re: Annoying stutter in short videos

Update:
After a lot of trial and error I found the soluition for myself.

At Encoder - Advanced I use MKV as output.
H.264 and H.265 with software and NVENC works without fail now.

NVENC encodes quickly, but looks very pixelated (without changing anything in the specifications). H.265 with NVENC is even barely playable and crashes while watching.

With software I set CRF = 12 and get a great result with H.264. It only takes an eternity to finish. Therefore I could not test the quality under software H.265 yet.


Is H.265 worth it at all?

And can NVENC achieve the same quality that I get with software CRF = 12? (If that makes sense at all?)


And one (I hope) last thing:
In a completely different test, a video was squeezed in a 4:3 square picture with every setting. Originally it is a typical 16:9 format. This also happens with the simple basic settings.
But that only happened in this single case. Maybe the source is just bad (it was a test with a webm).


Thanks again!

Re: Annoying stutter in short videos

You can select what you want.
- NVENC is NVIDIA hardware encoding. It works faster but quality low a bit.
- H.264/H.265 Software encoding. It gives better quality, have a lot of settings but uses CPU and works slower.

> software CRF = 12
It is extremely low. I use 18 for most cases.
It is not simple question about corresponding software and NVENC settings to get the same quality. Approximate answer you can get when switching from software to NVENC. As I can see CRF=12 corresponds to 35 Mbit/s.

About astect ratio (AR). In general case it must be the same as in the source.
Looks like you have video with unreadable aspect ratio. So acpect ratio was reset in output video.
You can fix AR by third party tools or use additional encoder options in SVP Encoder-Advanced mode.
In quick manual by pressing button ? I found these options about aspect ratio:

--ovcopts=aspect= sample aspect ratio
--ovcopts=sar= sample aspect ratio

You can use them.