动动 发表于 2024-10-10 11:26:58

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

./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;
      }



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

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

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

动动 发表于 2024-10-10 17:11:28

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

2. 内 ...

非常感谢,可以了
页: [1]
查看完整版本: 裸流文件保存到mp4 帧数问题