Mp4 в HLS с использованием ffmpeg

Я пытаюсь преобразовать локальное видео .mp4 в HLS с помощью ffmpeg в приложении для iOS. Я интегрировал оболочку ffmpeg, используя pods, и сгенерировал все сегментированные файлы .ts и файл m3u8, но некоторые сегменты файла .ts не перечислены в файле списка воспроизведения .m3u8, как показано ниже. Это всегда список последних 5 видеофрагментов.

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:2
#EXT-X-MEDIA-SEQUENCE:13
#EXTINF:2,
out13.ts
#EXTINF:1,
out14.ts
#EXTINF:2,
out15.ts
#EXTINF:2,
out16.ts
#EXTINF:1,
out17.ts
#EXT-X-ENDLIST

Я использовал следующие коды для генерации HLS.

    FFmpegWrapper *wrapper = [[FFmpegWrapper alloc] init];
    [wrapper convertInputPath:inputFilePath outputPath:outputFilePath options:nil progressBlock:^(NSUInteger bytesRead, uint64_t totalBytesRead, uint64_t totalBytesExpectedToRead) {

    } completionBlock:^(BOOL success, NSError *error) {
        success?NSLog(@"Success...."):NSLog(@"Error : %@",error.localizedDescription);
    }];

Есть ли другие способы сделать это?

12 голосов | спросил Vishnu Kumar. S 18 J0000006Europe/Moscow 2015, 13:13:55

2 ответа


0

Наконец-то я исправил эту проблему, установив размер hls в FFOutputFile.m, используя следующий код.

av_opt_set_int(formatContext->priv_data, "hls_list_size", list_size, 0);
ответил Vishnu Kumar. S 19 J0000006Europe/Moscow 2015, 11:52:04
0

Размер списка по умолчанию при конвертации в HLS - 5 . Итак, вы получаете последние 5 .ts файлов. Вы должны установить -hls_list_size 0, чтобы включить все сгенерированные файлы .ts.

ffmpeg -i input.mp4 -profile:v baseline -level 3.0 -s 640x360 -start_number 0 -hls_time 10 -hls_list_size 0 -f hls index.m3u8 Еще здесь

ответил budthapa 18 J0000006Europe/Moscow 2015, 14:57:16

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132