【发布时间】: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