裸流文件保存到mp4 帧数问题

固件类型:官方提供的固件
固件文件名称:Ubuntu 20.04.6 LTS (GNU/Linux 5.10.110 aarch64)
固件下载地址:百度下载
Log日志:null.txt

./demo rtsp:xxxxxxxx --rtsp_transport tcp -o 2560x1440 -s -e h265 -f out.h265
我是用上面的命令保存了一段视频文件
然后使用 ./demo_memory_read out.h265 2560 1440 并且在代码里加入如下代码 并且保存到test.mp4文件中,保存成功后使用播放器播放速度很快,应该怎么设置test.mp4的帧数呢?我的out.h265 大概有30秒的长度 mp4一秒就播放完了,这个帧数是怎么控制的呢?

    shared_ptr<ModuleMppEnc> enc = make_shared<ModuleMppEnc>(EncodeType::ENCODE_TYPE_H265, 25);
    enc->setProductor(dec);
    enc->setBufferCount(8);
    enc->setDuration(0); // Use the input source timestamp
    ret = enc->init();
    if (ret < 0)
    {
        ff_error("Enc init failed\n");
        return ret;
    }

    auto file_writer = make_shared<ModuleFileWriter>(enc->getInputImagePara(), "test.mp4");
    file_writer->setProductor(enc);
    ret = file_writer->init();
    if (ret < 0)
    {
        ff_error("ModuleFileWriter init failed\n");
        return ret;
    }

tchip_askquestions
null.txt (4 Bytes)

  1. demo的-f选项只保存输入源模块输出的数据,如果你需要调整分辨率重新编码你可以用-m选项来保存

  2. 内存读取模块的设置输入内存接口有设置时间戳的(pts),如果不设置那么视频的时间间隔都为0,而编码模块会根据设置的帧率产生时间戳,如果输入源没有时间戳编码模块就可以不要这行(setDuration(0))

dengkx 发表于 2024-10-10 14:02

  1. demo的-f选项只保存输入源模块输出的数据,如果你需要调整分辨率重新编码你可以用-m选项来保存

  2. 内 …

非常感谢,可以了