[RFE] Add borders on transcode
Posted: 21 Aug 2004 19:46
Hi.
My problem is: I want to stream video to a PC that redirects the stream to a technotrend DVB card for output. These cards only accept video in certain resolutions, eg. 720x576 for PAL.
I've got it working with transcoding and UDP streaming, but only if the source video has a matching resolution.
In case of 4:3 movies, scaling to 720x576 works ok, but if the source video is in some widescreen format, theres no alternative to adding some black borders to the video.
Actually, I tried this:
vlc "foo.avi" --sout "#transcode{vcodec=mpgv,vb=4000,acodec=mpga,ab=192,croptop=-112,cropbottom=-112}: std{access=udp,mux=ts,url=foo:1234}"
(note the negative crop)
This actually works, but adds garbage around the video, and I wouldnt be surprised if it would crash sometimes too.
The simplest enhancement would be adding paddtop,paddbottom,etc. options to add border pixels. Even better would be a way to padd/crop to a given resolution. And best-of-all would be a way to aspect-correct scale to a destination resolution plus padding the rest.
As ex. for the correct handling:
Assume source video is 640x352 (1:1.82). 720x576 output is assumed to be 4:3, so optimal output height would be 576*(4/3)*(1/1.82) = 422. That means we need to scale 640x352->720x422 and then add 77 pixels black brder on top and bottom. If vlc would do most of this calculation on its own, this would be perfect...
Any comments?
My problem is: I want to stream video to a PC that redirects the stream to a technotrend DVB card for output. These cards only accept video in certain resolutions, eg. 720x576 for PAL.
I've got it working with transcoding and UDP streaming, but only if the source video has a matching resolution.
In case of 4:3 movies, scaling to 720x576 works ok, but if the source video is in some widescreen format, theres no alternative to adding some black borders to the video.
Actually, I tried this:
vlc "foo.avi" --sout "#transcode{vcodec=mpgv,vb=4000,acodec=mpga,ab=192,croptop=-112,cropbottom=-112}: std{access=udp,mux=ts,url=foo:1234}"
(note the negative crop)
This actually works, but adds garbage around the video, and I wouldnt be surprised if it would crash sometimes too.
The simplest enhancement would be adding paddtop,paddbottom,etc. options to add border pixels. Even better would be a way to padd/crop to a given resolution. And best-of-all would be a way to aspect-correct scale to a destination resolution plus padding the rest.
As ex. for the correct handling:
Assume source video is 640x352 (1:1.82). 720x576 output is assumed to be 4:3, so optimal output height would be 576*(4/3)*(1/1.82) = 422. That means we need to scale 640x352->720x422 and then add 77 pixels black brder on top and bottom. If vlc would do most of this calculation on its own, this would be perfect...
Any comments?