Log in

View Full Version : How to know what filter supports what format?


Selur
7th August 2016, 07:40
Seeing that some filters only support:
a. specific color formats (http://www.vapoursynth.com/doc/pythonreference.html#format-constants)
b. progressive and/or interlaced content
I wonder, "Is there a generic way to 'ask' a filter: "

What color formats it supports?
Whether it supports interlaced or progressive content?


I know there is Fmtconv (http://forum.doom9.org/showthread.php?t=166504) which allows the user to convert between one color format to another, so if there was a way to 'ask' a filter what it supports one could write some sort of helper function that would take care of the necessary (as lossless as possible) conversion for the user or may be Vapoursynth itself could take care of that internally,...

My guess is there currently is no way to 'ask' a filter those questions and thus the only way to write a script with multiple filters is to do a lot of testing and searching, but since I'm not that experienced with Vapoursynth I thought I should ask here to see if may be I just missed something. May be there are already some ways to do what I'm looking for and I just haven't stumbled over them.

Cu Selur

Myrsloik
7th August 2016, 10:00
No, no way to do that. I still haven't even properly documented what my own stuff supports. My goal is to male everything support 8-16bit and maybe float if not too different/annoying to do.
In r33 at least all core functions will support this (where it makes sense)

Interlacing is easier. Just assume progressive only unless there's an argument called interlaced, order or field.

Selur
7th August 2016, 10:32
Thanks for clearing that up.

In r33 at least all core functions will support this (where it makes sense)
nice :)

Jamaika
7th August 2016, 10:49
What color formats it supports?
◾Support for video with format changes – Some video just can’t stick to one format or frame size VapourSynth can handle any kind of change
I don't know what the creator had in mind? How joined film yuv420 and yuv444 which would play in a decoder?

add file (failed for MPC/LAV)
mkvmerge.exe" --ui-language pl --output ^"image1.mkv^" --language 0:und ^"^(^" ^"movie_yuv420p.h264^" ^"movie_yuv444p.h264^" ^"^)^" --disable-track-statistics-tags
or add file (failed for MPC/LAV)
mp4box.exe -new -info -force-cat -cat movie_yuv420p.h264:profile="High" -cat movie_yuv444p.h264:profile="High 4:4:4 Predictive" image_1.mp4
ffmpeg.exe -f concat -i concat.txt -f mp4/matroska -c:v copy -movflags faststart "image_1.mp4/mkv"
concat.txt/file 'movie_yuv420p.h264'
concat.txt/file 'movie_yuv444p.h264'
or append file (good) {Only codec h264/vp9!!! Don't use HEVC}
mkvmerge.exe" --ui-language pl --output ^"image1.mkv^" --language 0:und ^"^(^" ^"movie_yuv420p.h264^" ^"^)^" + ^"^(^" ^"movie_yuv444p.h264^" ^"^)^" --disable-track-statistics-tags --append-to 1:0:0:0
ffmpeg.exe -i "image1.mkv" -f mp4 -c:v copy -movflags faststart "image_1.mp4 <-- curio

Separately films is also a problem with the display. Eg. movies yuv 10/12/14/16 bit depth are read as 8 bit.

Selur
8th August 2016, 05:18
btw. video with format changes might also include changes in frame rate or resolution.

Jamaika
8th August 2016, 05:56
They are single encoding parameters. There's more . For example: for HEVC change sao, amp or other can cause problems. Good advice, movies join with the same parameters.
I meet the variable frame rate eg. from smartphones. It also causes problems.

PS I don't know whether the latest v9.3 mkvmerge not added any fixes in this topic.