我在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 segements作为直播源?
答案 0 :(得分:0)
看看app.component.html
减少您的细分市场规模。