Thanks for the reply. I'm rather curious, were you developing this for a long time or did you want to add it after my low-quality patch ?
Anyway thanks a lot for this patch, I don't have the level required to understand it fully but it seems to be a nice add. Le 08/01/2015 23:04, Michael Niedermayer a écrit : > On Thu, Jan 08, 2015 at 03:02:15PM +0100, Elian FARAJ wrote: >> Hi folks, >> >> In Matroska specifications you can set a stream as default stream using the >> metadata tag disposition:default. If there is no value, default value is 1, >> implying the stream is default (...by default). Ffmpeg currently supports >> this but only when there are default/non default streams in input file, user >> has no way to set himself what should be default and what shouldn't be. When >> we're outside of this case (often happens) this causes unwanted behavior : >> when you have 2 audio streams nothing will be written in disposition:default >> so according to Matroska standards the 2 streams will be default. If you >> want to set an audio stream as default (because it's in the language you >> want as default for example) you cannot - and by the way "two default >> streams" doesn't make any sense. It's worse if you got subtitles and if you >> want none as default because your player will show subtitles by default, as >> subtitles streams are default streams too. >> >> Sorry if this description is pure mess, here are few links with relevant >> information : >> http://thread.gmane.org/gmane.comp.video.ffmpeg.devel/158229 >> http://article.gmane.org/gmane.comp.video.ffmpeg.devel/158353 >> http://ffmpeg.org/pipermail/ffmpeg-user/2012-October/010845.html >> >> As stated in the last link users can try to set a metadata tag >> disposition:default but it will be considered as "extra" metadata and not >> real default tag. My patch aims to support this tag so default stream status >> is actually written. My patch doesn't change default (sorry) behavior of >> Ffmpeg, it only enables users set a default stream tag which overrides >> automatic choices of Ffmpeg. >> >> Please note that I'm an extreme beginner in all those topics. I have near no >> experience in multimedia, I have poor programming skills ("skilled" only >> with PHP and very general knowledge in true programming languages, you >> couldn't even state that I'm "programming !") and I never used Git nor >> mailing lists before, I quickly Googled those topics. I simply wanted to >> enable something in Ffmpeg and I don't like begging for others to work for >> me so I tried it by myself. Sorry if I did anything wrong. >> >> I'll use a simple example to show you how my patch works. We'll take a file, >> Video.avi, with 1 video and 1 audio streams. We'll convert it to Video.mkv, >> with 1 video stream and 2 duplicated audio streams. We'll set the video >> stream and the first audio stream as default. >> >> Original Ffmpeg behavior : >> ffmpeg -i Video.avi -map 0:0 -map 0:1 -map 0:1 -metadata:s:v:0 >> disposition:default=1 -metadata:s:a:0 disposition:default=1 -metadata:s:a:1 >> disposition:default=0 Video.mkv >> The disposition:default tag is not actually written in those 3 cases. >> Therefore any video player compliant with Matroska specs reads those 3 >> streams as default. >> >> With my patch : >> ffmpeg -i Video.avi -map 0:0 -map 0:1 -map 0:1 -metadata:s:v:0 >> disposition:default=1 -metadata:s:a:0 disposition:default=1 -metadata:s:a:1 >> disposition:default=0 Video.mkv >> Video stream (#0) : disposition:default=1 : The video stream is set as >> default so it is read as default (doesn't change with the case above) >> Audio stream #0 : disposition:default=1 : This audio stream is set as >> default so it is read as default >> Audio stream #1 : disposition:default=0 : This audio stream is set as not >> default so it is not read as default (this changes with the case above) >> >> Thanks for reviewing > > See "[PATCH] ffmpeg: allow overriding and amending AVStream->disposition" > > [...] > > > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel > _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel