Opened 15 months ago

Last modified 6 months ago

#11627 open enhancement

Feature request: copy IAMF stream_groups from input file

Reported by: gamer191 Owned by: Luiz Stangarlin
Priority: normal Component: avformat
Version: git-master Keywords: iamf
Cc: gamer191 Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description (last modified by gamer191)

Based on the https://ffmpeg.org/ffmpeg-all.html example for "To copy the two stream groups (Audio Element and Mix Presentation) from an input IAMF file with four streams into an mp4 output", and based on https://trac.ffmpeg.org/ticket/11625#comment:1, it appears that ffmpeg does not have the ability to copy an IAMF file without the user manually ffprobing to find the number of input streams, and then writing a -stream_group command

Therefore, I am opening a feature request requesting a command to copy IAMF stream groups from an input file, in order to allow IAMF files to be automatically copied

Patches should be submitted to the ffmpeg-devel mailing list and not this bug tracker.

Attachments (3)

0002-fix-also-allow-demuxing-iamf-to-iamf-mp4-without-spe.patch (2.6 KB ) - added by Luiz Stangarlin 6 months ago.
patch to allow copying the stream groups from iamf to iamf/mp4
0001-fix-allow-demuxing-mp4-to-iamf-without-specifying-gr.patch (7.7 KB ) - added by Luiz Stangarlin 6 months ago.
patch to copy groups when demuxing and remuxing IAMF
0002-fix-allow-demuxing-iamf-to-iamf-mp4-without-specifyi.patch (13.5 KB ) - added by Luiz Stangarlin 6 months ago.
patch to allow copying the stream groups from iamf to iamf/mp4

Download all attachments as: .zip

Change History (8)

comment:1 by gamer191, 15 months ago

Description: modified (diff)

comment:2 by Luiz Stangarlin, 6 months ago

Hello, I also have this problem.
It would be convenient if it was possible to copy IAMF stream groups between source MP4 and target MP4.
So I gave a go at implementing it, the idea is to put the IAMF descriptors (the header) on side-data, then the mov decoder can leave it there when it reads the IACB.
Then when it comes back to reencoding, the encoder instead of giving an error because the user didn't pass the arguments on the command line to configure the IAMF groups, it can just read it back from the IAMF descriptors and configure/create the substreams in similar way with the same parameters after deserializing the IAMF descriptor.

I didn't write tests for this, if the implementation is good enough and someone can provide me information on what is needed I can do that.
But this is supposed to be an useful helper and shouldn't cause any problem on the rest of the system.

comment:3 by Luiz Stangarlin, 6 months ago

Owner: set to Luiz Stangarlin
Status: newopen

by Luiz Stangarlin, 6 months ago

patch to allow copying the stream groups from iamf to iamf/mp4

comment:4 by Luiz Stangarlin, 6 months ago

If someone use this, please don't forget to actually map your group streams. Now it will match the ouput streams to the input streams by index. Instead of only the IAMF "tags" (groups and elements and the configuration) being copied.

Example of use:

./ffmpeg-iamf \
  -v debug \
  -i ./Animated_demo_3OA_and_2_0.iamf \
  -t 00:00:01 \
  -map 0 \
  -c copy \
  ./test.iamf
Last edited 6 months ago by Luiz Stangarlin (previous) (diff)

comment:5 by Luiz Stangarlin, 6 months ago

Component: undeterminedavformat

by Luiz Stangarlin, 6 months ago

patch to copy groups when demuxing and remuxing IAMF

by Luiz Stangarlin, 6 months ago

patch to allow copying the stream groups from iamf to iamf/mp4

Note: See TracTickets for help on using tickets.