video - android ffmpeg 设置帧率

标签 video android-ndk ffmpeg frame-rate

我正在从相机获取视频流,并且正在将帧写入文件中。问题是它们是以太大的帧速率编写的,我找不到以编程方式设置它的方法。
所以我想我正在寻找控制台指令“-r [framerate]”调用的C函数

我尝试在 avFormatContext 中设置该选项,但没有效果。

AVDictionary *options=NULL; 
av_dict_set(&options,"r","1",0);
    avio_open2(&oc->pb, "path", AVIO_FLAG_WRITE,options);

之后,我正在阅读带有 av_read_frame(context,&packet) 的框架并用 av_write_frame(oc,&packet); 编写它们

知道我做错了什么或者我应该如何解决这个问题?

最佳答案

您可能希望自己控制相机帧速率。

#include <stdio.h>
#include <windows.h>  
#include <time.h>
...
double ticks; 
int fps=25; //25 FPS for example
uint64_t  frequency;        // ticks per second
double freq,et; 
double mspf=1000.0/(double)fps;

QueryPerformanceFrequency((LARGE_INTEGER *) &frequency);
freq= (frequency * 1000); 

while(???) {
    ticks=GetTickCount(); // start tick 

    //Read/write function
    av_read_frame(context,&packet);
    av_write_frame(oc,&packet);

    et=(GetTickCount()-ticks)/freq; // elapsed time for current frame, in milliseconds 
    av_usleep((et+1<mspf?mspf-et:1) * 1000);
}

关于video - android ffmpeg 设置帧率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12963607/

相关文章:

video - FFmpeg 丢失视频文件的转换

c# - 用于 Linux 的单声道 VLC API

android - 如何同步播放多首歌曲?

Android Studio 2.2 或用于 NDK 支持的实验性 Gradle 插件?

linux - 在 ubuntu 上构建 ndk (ndk-r10b) 示例

python - 如何在 cv2.VideoWriter 中使用 FPS 参数?

ios - 在iOS库中使用哪种格式播放视频或音频?

ffmpeg - 如何在 Debian 8 Jessie 上安装 gstreamer0.10-ffmpeg(无安装候选)

android - 使用带有可调整 png 图像的 ffmpeg 在视频上叠加图像

python - 多RTSP接收方法