【问题标题】:ffmpeg - HLS live streaming programmaticallyffmpeg - 以编程方式进行 HLS 直播
【发布时间】:2018-01-09 09:05:24
【问题描述】:

我在 android 上使用 ffmpeg 3.4 版本的源代码。我尝试使用它来复用音频/视频元素流作为 m3u8 输出并使用以下选项:

    int num = av_opt_set_from_string(outputFormatContext->priv_data,
         "hls_list_size=6;start_number=1;hls_wrap=10;hls_time=10;  hls_segment_size=500000;",NULL,"=",";");
    if (num < 0) {
        LOGI("av_opt_set_from_string return error (0x%X) %d",num,num);
    }

它可以工作,但只输出一个文件(例如test1.ts),关闭实例后,它会生成一个m3u8文件,如下所示:

#EXTM3U
#EXT-X-VERSION:4
#EXT-X-TARGETDURATION:52
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:51.600000,
#EXT-X-BYTERANGE:47199280@0
test1.ts
#EXT-X-ENDLIST

但是如果我从终端运行以下命令:

ffmpeg -i test.mp4 -codec copy -hls_time 10 test.m3u8

它会正确生成 ts 段(10 秒):

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:11
#EXT-X-MEDIA-SEQUENCE:1
#EXTINF:10.666667,
test1.ts
#EXTINF:10.666667,
test2.ts
#EXTINF:10.666667,
test3.ts
#EXTINF:10.666667,
test4.ts
#EXTINF:9.633333,
test5.ts
#EXT-X-ENDLIST

如何让我的程序生成 ts 段作为直播源?

【问题讨论】:

  • 你找到解决办法了吗?

标签: ffmpeg android-ffmpeg


【解决方案1】:

看看hls_segment_size=500000 减小分段大小。

【讨论】:

    猜你喜欢
    • 2015-05-28
    • 2011-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-23
    • 1970-01-01
    • 2016-12-14
    • 2015-05-08
    相关资源
    最近更新 更多