我写过一个视频生成器,以h264格式(mp4)对视频进行修改。当我从我的azure服务流式传输视频时,我看到以下网络流量:
我正在使用的AVCodecContext布局如下:
AVCodec* videoCodec = ffmpeg.avcodec_find_encoder(AVCodecID.AV_CODEC_ID_H264)
AVCodecContext* videoCodecContext = ffmpeg.avcodec_alloc_context3(videoCodec);
videoCodecContext->bit_rate = 400000;
videoCodecContext->width = 1280;
videoCodecContext->height = 720;
videoCodecContext->gop_size = 12;
videoCodecContext->max_b_frames = 1;
videoCodecContext->pix_fmt = videoCodec->pix_fmts[0];
videoCodecContext->codec_id = videoCodec->id;
videoCodecContext->codec_type = videoCodec->type;
videoCodecContext->time_base = new AVRational
{
num = 1,
den = 30
};
ffmpeg.av_opt_set(videoCodecContext->priv_data, "preset", "ultrafast");
我也尝试通过AVDictionary为avformat_write_header()设置“movflags”选项,但是av_write_trailer()返回-2,导致文件没有完成写入。
我无法弄清楚如何解决这个问题。使用Windows Movie Maker流生成的视频完美无缺。
我知道这与mdat和mov职位有关。
此外,这似乎只发生在谷歌浏览器中。