On Mon, Apr 15, 2024 at 10:35:44AM +0200, Tomas Härdin wrote: > lör 2024-04-13 klockan 01:25 +0200 skrev Michael Niedermayer: > > On Fri, Apr 12, 2024 at 11:40:47AM +0200, Tomas Härdin wrote: > > > This idea could be extended to other fields not presently > > > considered to > > > be metadata, that would be handy to treat as such. > > > > > > I use the key "id" because ffprobe outputs id= for streamid. > > > Another > > > option could be to collect these types of metadata that go into > > > AVStream fields under a namespace like FFMPEG: or AVSTREAM: or > > > something, then delete all of them using AV_DICT_IGNORE_SUFFIX near > > > the > > > end of of_open() since they're for internal ffmpeg use. > > > > > > The FATE change is just because av_dict() changes the order of > > > things > > > when elements are deleted. > > > > > > /Tomas > > > > >  fftools/ffmpeg_demux.c              |    5 +++ > > >  fftools/ffmpeg_mux_init.c           |   56 > > > ++++++++++++++++++++++++++---------- > > >  tests/ref/fate/matroska-stereo_mode |    6 +-- > > >  3 files changed, 49 insertions(+), 18 deletions(-) > > > cd526b2292b6d7e3fb5739a04cf17fbe5f207f16  0001-ffmpeg-Carry- > > > streamid-as-metadata-key-id.patch > > > From 7799f1b2eb8ab02e58118565f3e889fbe0d568a7 Mon Sep 17 00:00:00 > > > 2001 > > > From: =?UTF-8?q?Tomas=20H=C3=A4rdin?= > > > Date: Fri, 12 Apr 2024 10:34:12 +0200 > > > Subject: [PATCH] ffmpeg: Carry streamid as metadata key 'id' > > > > > > This allows using -map_metadata and -metadata to copy/set streamids > > > (PIDs). > > > --- > > >  fftools/ffmpeg_demux.c              |  5 +++ > > >  fftools/ffmpeg_mux_init.c           | 56 +++++++++++++++++++++---- > > > ---- > > >  tests/ref/fate/matroska-stereo_mode |  6 ++-- > > >  3 files changed, 49 insertions(+), 18 deletions(-) > > > > breaks: > > > > ./ffmpeg -i ~/videos/mm-short.mpg -vstats_file /tmp/vstats -bitexact > > -map 0:1 -map 0:1 -map 0:2 -threads 6 -vcodec libx264 -vcodec libx264 > > -pass 1 -b:v:0 300k -b:v:1 900k -passlogfile:v:1 /tmp/video2 - > > passlogfile:v:0 /tmp/video1 -t 1 -y -ab 128k  /tmp/x.ts > > > > [mpegts @ 0x558d5e3b2140] Duplicate stream id 480 > > It's hardly strange if you map the same stream to the output twice that > you get duplicate streamids ok but asking for a stream to be mapped twice is a valid case. Ideally FFmpeg should not fail, it should resolve all parameters within what is valid. It could fail if the user explcicitly asks for invalid parameters ... thx [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Does the universe only have a finite lifespan? No, its going to go on forever, its just that you wont like living in it. -- Hiranya Peiri