konstantin1
25th February 2019, 04:38
I would like to modify (increase) video resolution without a full re-encode. Maybe there is a container, which supports this with a metadata tag, eg.: VIRTUAL_WIDTH, and VIRTUAL_HEIGHT, which are honored at least by ffmpeg. For example for cropping the videos, corresponding H264 bitstream level metadata filters exist for the AVC codec, which can be set without a real re-encode, and then video will be cropped both at play time, or when encoding, according to the bitstream level data.
My general problem is, when I upload videos to my favourite video sharing website - not youtube -, and the video height is less then 360 pixel, let's say 320px, then the video is downscaled to only 240p, which is suboptimal. It would be nice, to set only a bitstream level data, or some container metadata, etc. to achieve a higher "virtual" resolution, at least 360p or 480p, which would be honored at their transcoding server, and video would be upscaled to that vertical resolution.
A similar hack was available by setting the "DURATION" metadata tag of matroska streams, and fooling the server that video has a valid duration, however it hadn't, because it was uploaded from STDOUT stream data, and wasn't seekable at all, nor valid duration was set by ffmpeg.
I found that FLV container supports some metadata WIDTH and HEIGHT, but they are for the flash-player on a webpage.
My general problem is, when I upload videos to my favourite video sharing website - not youtube -, and the video height is less then 360 pixel, let's say 320px, then the video is downscaled to only 240p, which is suboptimal. It would be nice, to set only a bitstream level data, or some container metadata, etc. to achieve a higher "virtual" resolution, at least 360p or 480p, which would be honored at their transcoding server, and video would be upscaled to that vertical resolution.
A similar hack was available by setting the "DURATION" metadata tag of matroska streams, and fooling the server that video has a valid duration, however it hadn't, because it was uploaded from STDOUT stream data, and wasn't seekable at all, nor valid duration was set by ffmpeg.
I found that FLV container supports some metadata WIDTH and HEIGHT, but they are for the flash-player on a webpage.