ffmpeg - ts 文件中的帧数

标签 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;

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

最佳答案

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

codec = avcodec_find_encoder(AV_CODEC_ID_H264);
c = avcodec_alloc_context3(codec);
[...]
c->gop_size = 10;
doc/examples/encode_video.c 中的完整示例(或见 Github)。

关于ffmpeg - ts 文件中的帧数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44490626/

相关文章:

ffmpeg - 如何让 ffmpeg 编码一次并复用两次,以及选项?

html - 在浏览器中播放包含 MPEG-2 和/或 H.264 的 MPEG-2 传输流

ffmpeg - ts nalu to mp4 mdat 似乎既不包含 nalu 也不包含 avcc

c - MPEG2 传输流 PES 填充字节长度

audio - 如何使用FFmpeg连接多个具有不同流顺序的视频文件?

audio - ffmpeg:连接视频和音频文件

ffmpeg - libav/avconv 的平铺过滤器

php - php 中的 FFMPEG 视频是否通过 shell_exec()

ios - HTML5 和 MP4 与 M2TS 容器

ffmpeg - 如何使用 ffmpeg 调整 mpeg 2 ts 开始时间?