Skip to content

Commit 3f44f07

Browse files
add fragmented mp4 remuxing
1 parent 81c62a9 commit 3f44f07

File tree

2 files changed

+19
-3
lines changed

2 files changed

+19
-3
lines changed

2_remuxing.c

+15-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,14 @@ int main(int argc, char **argv)
1111
int stream_index = 0;
1212
int *streams_list = NULL;
1313
int number_of_streams = 0;
14+
int fragmented_mp4_options = 0;
15+
16+
if (argc < 3) {
17+
printf("You need to pass at least two parameters.\n");
18+
return -1;
19+
} else if (argc == 4) {
20+
fragmented_mp4_options = 1;
21+
}
1422

1523
in_filename = argv[1];
1624
out_filename = argv[2];
@@ -75,8 +83,14 @@ int main(int argc, char **argv)
7583
goto end;
7684
}
7785
}
86+
AVDictionary* opts = NULL;
87+
88+
if (fragmented_mp4_options) {
89+
// https://developer.mozilla.org/en-US/docs/Web/API/Media_Source_Extensions_API/Transcoding_assets_for_MSE
90+
av_dict_set(&opts, "movflags", "frag_keyframe+empty_moov+default_base_moof", 0);
91+
}
7892
// https://ffmpeg.org/doxygen/trunk/group__lavf__encoding.html#ga18b7b10bb5b94c4842de18166bc677cb
79-
ret = avformat_write_header(output_format_context, NULL);
93+
ret = avformat_write_header(output_format_context, &opts);
8094
if (ret < 0) {
8195
fprintf(stderr, "Error occurred when opening output file\n");
8296
goto end;

Makefile

+4-2
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,12 @@ run_hello: make_hello
1212

1313
make_remuxing: clean
1414
docker run -w /files --rm -it -v `pwd`:/files leandromoreira/ffmpeg-devel \
15-
gcc -L/opt/ffmpeg/lib -I/opt/ffmpeg/include/ /files/2_0_remuxing.c \
15+
gcc -L/opt/ffmpeg/lib -I/opt/ffmpeg/include/ /files/2_remuxing.c \
1616
-lavcodec -lavformat -lavfilter -lavdevice -lswresample -lswscale -lavutil \
1717
-o /files/build/remuxing
1818

19-
run_remuxing: make_remuxing
19+
run_remuxing_ts: make_remuxing
2020
docker run -w /files --rm -it -v `pwd`:/files leandromoreira/ffmpeg-devel /files/build/remuxing /files/small_bunny_1080p_60fps.mp4 /files/remuxed_small_bunny_1080p_60fps.ts
2121

22+
run_remuxing_fragmented_mp4: make_remuxing
23+
docker run -w /files --rm -it -v `pwd`:/files leandromoreira/ffmpeg-devel /files/build/remuxing /files/small_bunny_1080p_60fps.mp4 /files/fragmented_small_bunny_1080p_60fps.mp4 fragmented

0 commit comments

Comments
 (0)