0
点赞
收藏
分享

微信扫一扫

m3u8 文件代码片段.

辰鑫chenxin 2022-02-17 阅读 82
c语言m3u8

m3u8 文件代码片段. 备用.


//写分片的最大持续时间,分片的序号
int write_m3u8_header(FILE *fp, const myoption_t opt) 
{
	char write_buf[1024];
	snprintf(write_buf, 1024, "#EXTM3U\n#EXT-X-VERSION:3\n#EXT-X-TARGETDURATION:%05lu\n#EXT-X-MEDIA-SEQUENCE:%d\n", 
			(long)opt.segment_max_duration, opt.sequence);
	if (fwrite(write_buf, strlen(write_buf), 1, fp) != 1) {
		fprintf(stderr, "Could not write header to m3u8 index file!\n");
		return -1;
	}
	fflush(fp);
	return 0;
}

//写分片持续时间,名称及顺序号
int write_m3u8_segment(FILE *fp, const char *bname, unsigned int index, double duration) 
{
	char write_buf[1024];
	snprintf(write_buf, 1024, "#EXTINF:%f,\n%s-%u.ts\n", duration, bname, index);
	if (fwrite(write_buf, strlen(write_buf), 1, fp) != 1) {
		fprintf(stderr, "Could not write segment to m3u8 index file!\n");
		return -1;
	}
	fflush(fp);
	return 0;
}

//写分片结束标记
int write_m3u8_tailer(FILE *fp) 
{
	char write_buf[1024];
	snprintf(write_buf, 1024, "#EXT-X-ENDLIST\n");
	if (fwrite(write_buf, strlen(write_buf), 1, fp) != 1) {
		fprintf(stderr, "Could not write last file and endlist tag to m3u8 index file!\n");
		return -1;
	}
	fflush(fp);
	return 0;
}
举报

相关推荐

0 条评论