ts文件中的帧数

时间:2017-06-12 02:31:16

标签: ffmpeg mpeg2-ts

我从网络摄像头获取视频数据,并使用ffmpeg制作ts,m3u8

但是ts由ffmpeg做出的,每个ts都有不同的帧数。

那么,我怎样才能使帧数相等?

并且ts中的每个gop大小也不同..

我怎样才能使gop大小不变?

avformat_alloc_output_context2(&ptr->hls_ctx, NULL, "hls", "hls.m3u8");
((HLSContext*)ptr->hls_ctx->priv_data)->flags = HLS_DELETE_SEGMENTS | HLS_ROUND_DURATIONS;
((HLSContext*)ptr->hls_ctx->priv_data)->max_nb_segments = 2;
((HLSContext*)ptr->hls_ctx->priv_data)->time = 2;

我已经使用时间参数来设置ts的播放时间

1 个答案:

答案 0 :(得分:0)

您可以在编码器上下文中设置GOP大小:

codec = avcodec_find_encoder(AV_CODEC_ID_H264);
c = avcodec_alloc_context3(codec);
[...]
c->gop_size = 10;

doc/examples/encode_video.c中的完整示例(或参见Github)。