From: Anton Khirnov <anton@khirnov.net> To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Subject: Re: [FFmpeg-devel] [PATCH 02/18] fftools/ffmpeg_filter: refactor setting input timebase Date: Mon, 11 Mar 2024 14:28:15 +0100 Message-ID: <171016369568.662.8737080358093163641@lain.khirnov.net> (raw) In-Reply-To: <9a7a9c5f-f377-bca8-26e1-6bfe12589ed2@martin.st> Quoting Martin Storsjö (2024-03-11 13:29:15) > On Mon, 11 Mar 2024, Anton Khirnov wrote: > > > Quoting Tobias Rapp (2024-03-11 11:12:38) > >> On 10/03/2024 23:49, Anton Khirnov wrote: > >> > >>> Quoting James Almer (2024-03-10 23:29:27) > >>>> On 3/10/2024 7:24 PM, Anton Khirnov wrote: > >>>>> Quoting Michael Niedermayer (2024-03-10 20:21:47) > >>>>>> On Sun, Mar 10, 2024 at 07:13:18AM +0100, Anton Khirnov wrote: > >>>>>>> Quoting Michael Niedermayer (2024-03-10 04:36:29) > >>>>>>>> why not automatically choose a supported timebase ? > >>>>>>>> "[mpeg4 @ 0x55973c869f00] timebase 1/1000000 not supported by MPEG 4 standard, the maximum admitted value for the timebase denominator is 65535" > >>>>>>> Because I don't want ffmpeg CLI to have codec-specific code for a codec > >>>>>>> that's been obsolete for 15+ years. One could also potentially do it > >>>>>>> inside the encoder itself, but it is nontrivial since the computations > >>>>>>> are spread across a number of places in mpeg4videoenc.c and > >>>>>>> mpegvideo_enc.c. And again, it seems like a waste of time - there is no > >>>>>>> reason to encode mpeg4 today. > >>>>>> This is not mpeg4 specific, its just a new additional case that fails > >>>>> The case you reported is mpeg4 specific. > >>>>> > >>>>>> ./ffmpeg -i mm-small.mpg test.dv > >>>>>> [dvvideo @ 0x7f868800f100] Found no DV profile for 80x60 yuv420p video. Valid DV profiles are: > >>>>> There is no mechanism for an encoder to export supported time bases. > >>>> Could it be added as an extension to AVProfile, or AVCodec? > >>> The two cases are actually pretty different: > >>> * mpeg4 has a constraint on the range of timebases, and actually does > >>> some perverted computations with the timestamps > >>> * DV just needs your video to be CFR, with a list of supported > >>> framerates; dvenc should probably read AVCodecContext.framerate > >>> instead of time_base > >>> > >>> But most importantly, is there an actual current use case for either of > >>> those encoders? They have both been obsolete for close to two decades. > >>> It seems silly to add new API that won't actually be useful to anyone. > >> > >> Hardware doesn't get outdated as quickly as software. And there are > >> people that do not switch their full environment to a new codec every > >> decade just to be "in line". > > > > And your point is...? > > I think the point is, that one can't just dismiss that anybody would want > to encode mpeg4 video any longer, even if it is obsolete. I also would > like to keep being able to do that. That capability is not going away though, and I'm not arguing that it should. > That said, I haven't followed the discussion closely enough about what to > do with the time bases. The only change is that in some rare cases the automatically selected timebase no longer fits into mpeg4 constraints, so the user has to specify either the framerate or the timebase explicitly. Specifically, the commandline used by Michael involves the extremely obscure case of converting subtitles to video (NOT harsubbing, but really 1 sub -> 1 video). Since subtitle encoding API is hardcoded to AV_TIME_BASE_Q, that timebase gets used for encoding, and the mpeg4 encoder rejects it. If it was hardsubbing (i.e. 1 video + 1 sub -> 1 video), the input video timebase should be used, which would probably work. I don't think it's that big of a deal to require users to specify the timebase or framerate explicitly in such a sitation. Inventing new APIs to cover it automagically seems like a waste of time, unless somebody has actual (not potential) uses for this. -- Anton Khirnov _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
next prev parent reply other threads:[~2024-03-11 13:28 UTC|newest] Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top 2024-03-06 11:03 [FFmpeg-devel] [PATCH 01/18] fftools/cmdutils: fix printing group name in split_commandline() Anton Khirnov 2024-03-06 11:03 ` [FFmpeg-devel] [PATCH 02/18] fftools/ffmpeg_filter: refactor setting input timebase Anton Khirnov 2024-03-07 20:37 ` Michael Niedermayer 2024-03-08 5:34 ` Anton Khirnov 2024-03-10 3:36 ` Michael Niedermayer 2024-03-10 6:13 ` Anton Khirnov 2024-03-10 19:21 ` Michael Niedermayer 2024-03-10 22:24 ` Anton Khirnov 2024-03-10 22:29 ` James Almer 2024-03-10 22:49 ` Anton Khirnov 2024-03-10 23:37 ` Michael Niedermayer 2024-03-11 6:03 ` Anton Khirnov 2024-03-11 10:12 ` Tobias Rapp 2024-03-11 12:23 ` Anton Khirnov 2024-03-11 12:29 ` Martin Storsjö 2024-03-11 13:28 ` Anton Khirnov [this message] 2024-03-11 14:03 ` Martin Storsjö via ffmpeg-devel 2024-03-11 14:32 ` Anton Khirnov 2024-03-11 14:37 ` Martin Storsjö 2024-03-11 14:31 ` Tobias Rapp 2024-03-06 11:03 ` [FFmpeg-devel] [PATCH 03/18] fftools/ffmpeg_filter: drop unused InputFilterPriv.ist Anton Khirnov 2024-03-06 11:03 ` [FFmpeg-devel] [PATCH 04/18] fftools/ffmpeg_dec: move scheduler registration from dec_open() to dec_alloc() Anton Khirnov 2024-03-06 11:03 ` [FFmpeg-devel] [PATCH 05/18] fftools/ffmpeg_dec: factor opening the decoder out of dec_open() Anton Khirnov 2024-03-06 11:03 ` [FFmpeg-devel] [PATCH 06/18] fftools/ffmpeg_opt: merge init_complex_filters() and check_filter_outputs() Anton Khirnov 2024-03-06 11:03 ` [FFmpeg-devel] [PATCH 07/18] fftools/ffmpeg_filter: move filtergraph input type check to a better place Anton Khirnov 2024-03-06 11:03 ` [FFmpeg-devel] [PATCH 08/18] fftools/ffmpeg_filter: add logging for binding inputs to demuxer streams Anton Khirnov 2024-03-06 11:03 ` [FFmpeg-devel] [PATCH 09/18] fftools/ffmpeg: simplify propagating fallback parameters from decoders to filters Anton Khirnov 2024-03-06 11:03 ` [FFmpeg-devel] [PATCH 10/18] fftools/ffmpeg: remove unncessary casts for *_thread() return values Anton Khirnov 2024-03-06 11:03 ` [FFmpeg-devel] [PATCH 11/18] fftools/ffmpeg_enc: drop unnecessary parameter from forced_kf_apply() Anton Khirnov 2024-03-06 11:03 ` [FFmpeg-devel] [PATCH 12/18] fftools/ffmpeg_enc: merge do_{audio, video}_out into frame_encode() Anton Khirnov 2024-03-06 11:03 ` [FFmpeg-devel] [PATCH 13/18] fftools/ffmpeg_sched: allow encoders to send to multiple destinations Anton Khirnov 2024-03-06 11:03 ` [FFmpeg-devel] [PATCH 14/18] fftools/ffmpeg_sched: factor initializing nodes into separate function Anton Khirnov 2024-03-06 11:03 ` [FFmpeg-devel] [PATCH 15/18] fftools/ffmpeg_sched: allow connecting encoder output to decoders Anton Khirnov 2024-03-06 11:03 ` [FFmpeg-devel] [PATCH 16/18] fftools/ffmpeg: prepare FrameData for having allocated fields Anton Khirnov 2024-03-06 11:03 ` [FFmpeg-devel] [PATCH 17/18] fftools/ffmpeg: add loopback decoding Anton Khirnov 2024-03-07 14:42 ` [FFmpeg-devel] [PATCH v2 " Anton Khirnov 2024-03-06 11:03 ` [FFmpeg-devel] [PATCH 18/18] fftools/ffmpeg_enc: set AV_PKT_FLAG_TRUSTED on encoded packets Anton Khirnov 2024-03-09 19:08 ` [FFmpeg-devel] [PATCH 01/18] fftools/cmdutils: fix printing group name in split_commandline() Anton Khirnov
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=171016369568.662.8737080358093163641@lain.khirnov.net \ --to=anton@khirnov.net \ --cc=ffmpeg-devel@ffmpeg.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel This inbox may be cloned and mirrored by anyone: git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \ ffmpegdev@gitmailbox.com public-inbox-index ffmpegdev Example config snippet for mirrors. AGPL code for this site: git clone https://public-inbox.org/public-inbox.git