Как генерировать фрагментированные файлы mp4 программно

У меня есть сервер потоковой передачи мультимедиа .h264 и я хочу объединить кадры .h264 в фрагментированные файлы mp4. Мне интересно, может ли какая-нибудь библиотека это поддержать?

Насколько я знаю, ffmpeg.exe и Bento4 могли бы поддерживать это, но я хочу использовать библиотеку, чтобы сделать это в моем коде, а не выполнять другой процесс.

Чтобы указать мою точку зрения, я хочу создать фрагментированные файлы mp4, чего можно добиться, выполнив ffmpeg.exe, как показано ниже:

ffmpeg -i xx.h264
-vcodec copy -an -f mp4 -reset_timestamps 0
-movflags empty_moov+default_base_moof+frag_keyframe -loglevel quiet
xxx.mp4"

Я хочу мультиплексировать mp4 файлы в моем коде, а не создавать другой процесс для этого.

Благодарю.

2

Решение

libavformat а также кодек являются базовыми библиотеками ffmpeg. Вы, вероятно, можете выполнить все, что вам нужно, с помощью libavformat. Документация по этим библиотекам скудна, но, насколько я помню, большую часть понимания можно найти в заголовочных файлах.

2

Другие решения

Более подробный:

AVDictionary* opts = NULL;
av_dict_set(&opts, "movflags", "frag_keyframe+empty_moov", 0);

а потом позже:

//init muxer, write output file header
avformat_write_header(formatContext, &opts);

где formatContext является указателем AVFormatContext получается при открытии выходного файла с помощью: avformat_alloc_output_context2 а также avio_open функции.

4

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector