Hi, I discovered the following lines in ffmpeg2theora.c (~l.550): if ((float)this->aspect_numerator/this->aspect_denominator < 1.09) { this->aspect_numerator = 1; this->aspect_denominator = 1; frame_aspect=(float)(this->aspect_numerator*this->picture_width)/ (this->aspect_denominator*this->picture_height); } This prevents the correct display of video that has an pixel aspect ratio of 1.09, which is the ratio with which some dvb content is delivered. This code was introduced in svn revision 14125 and was whitespace corrected in svn revision 15823 and my question is what is the purpose of this code? Or: what is expected to break if these lines are removed? The encoding of dvb content, at least, works better without it. Cheers, Stefan.
On 12/03/2009 11:11 PM, Stefan Bender wrote:> Hi, > > I discovered the following lines in ffmpeg2theora.c (~l.550): > > if ((float)this->aspect_numerator/this->aspect_denominator < 1.09) { > this->aspect_numerator = 1; > this->aspect_denominator = 1; > frame_aspect=(float)(this->aspect_numerator*this->picture_width)/ > (this->aspect_denominator*this->picture_height); > } > > This prevents the correct display of video that has an pixel > aspect ratio of 1.09, which is the ratio with which some dvb > content is delivered. > > This code was introduced in svn revision 14125 and was > whitespace corrected in svn revision 15823 and my question is > what is the purpose of this code? > Or: what is expected to break if these lines are removed? > The encoding of dvb content, at least, works better without it. >i had some footage where this was used. but i think it should be take out, will review it and take it out if i can not find a good reason for it to be there... j
ogg.k.ogg.k at googlemail.com
2009-Dec-04 00:39 UTC
[theora-dev] ffmpeg2theora aspect ratio
> i had some footage where this was used. > but i think it should be take out, will review it and take it out if i > can not find a good reason for it to be there...Playback speed maybe ? A slight non uniform scaling could be a lot slower on playback, so ignoring it would not look substantially different while displaying faster.
ogg.k.ogg.k at googlemail.com wrote:> Playback speed maybe ? A slight non uniform scaling could be a lot > slower on playback, so ignoring it would not look substantially > different while displaying faster.That should be a player decision, not an encoder decision. Many players can scale for free, or virtually so.
for 4:3 sd pal (D1/DV) source which is 720x576pixels with a PAR of 1.067 i use -x 768 -y 576 in ffmpeg2theora (which is 1:1 (1.0) PAR equivalent of 720x576(4:3)). for 4:3 sd ntsc which is 720x480pixels with a PAR of 0.9 i use -x 720 -y 540 in ffmpeg2theora (which is 1:1 (1.0) PAR equivalent of 720x480(4:3)). another option is to use -x 720 -y 540 to obtain 4:3 DAR for pal and -x 640 -y 480 for ntsc. i dont know which one is technically true (better) but i got good results with all. but values in the first example should be better since pal has wider pixels and ntsc has taller pixels. of course a regular user should not now the relation between DAR and PAR, so this should be made clear somehow. because all the video standards until HD had non-square pixel aspect ratios. if one day, all the existing video on earth on DVDs DV tapes, VHS BETA Tapes etc is transcoded or digitized to ogg theora this way (which is a good dream:)) and all the previous masters become inaccessible (because of technological switch) the next generations will think that the world (people etc) used to be slightly thinner (for pal) or wider (for ntsc) in the past:D .-_-. http://httpdot?net/.-_-./> Message: 1 > Date: Thu, 3 Dec 2009 23:11:19 +0100 > From: Stefan Bender > Subject: [theora-dev] ffmpeg2theora aspect ratio > To: theora-dev at xiph.org > Message-ID: <20091203221119.GA16636 at laptop> > Content-Type: text/plain; charset=us-ascii > > Hi, > > I discovered the following lines in ffmpeg2theora.c (~l.550): > > if ((float)this->aspect_numerator/this->aspect_denominator < 1.09) { > this->aspect_numerator = 1; > this->aspect_denominator = 1; > frame_aspect=(float)(this->aspect_numerator*this->picture_width)/ > (this->aspect_denominator*this->picture_height); > } > > This prevents the correct display of video that has an pixel > aspect ratio of 1.09, which is the ratio with which some dvb > content is delivered. > > This code was introduced in svn revision 14125 and was > whitespace corrected in svn revision 15823 and my question is > what is the purpose of this code? > Or: what is expected to break if these lines are removed? > The encoding of dvb content, at least, works better without it. > > Cheers, > Stefan. >