请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

采集到的yuv播放速度太快

采集方式 分辨率640x480
采样帧率 40
伪代码 nRet = av_read_frame(lpFormatCon, &strPack);
fwrite(播放文件(video3.yuv))

播放命令 ffplay -s 640x480 -pix_fmt yuyv422 video3.yuv

视频速度快,像快进一样,采集一分钟,25s就播放完成

问题是不是出在采集的帧率和播放的帧率不一致导致的,如何调整.

正在回答 回答被采纳积分+3

插入代码

1回答

李超 2020-12-26 23:01:26

你是如何确认你采集的是40的帧率?

1 回复 有任何疑惑可以回复我~
  • 提问者 heaven强 #1
    AVInputFormat *lpFormat = av_find_input_format("video4linux2");
    
        if(lpFormat == NULL)
        {
            av_strerror(nRet, szError, 1024);
    
            av_log(NULL, AV_LOG_DEBUG, "av_find_input_format error:[%d]%s\n", nRet, szError);
    
            return NULL;
        }
    
        nRet = av_dict_set(&lpOptions,"video_size", "640x480", 0);
    
        nRet =  av_dict_set(&lpOptions,"framerate", "30", 0); //简写是-r 帧率
    
    
       //!open device
        nRet = avformat_open_input(&lpFormatCon, lpDevice, lpFormat, &lpOptions);
    回复 有任何疑惑可以回复我~ 2020-12-27 11:27:58
  • 提问者 heaven强 #2
    以上是我采集的方式,我设置30帧率也不行
    回复 有任何疑惑可以回复我~ 2020-12-27 11:28:34
  • 李超 #3
    你设置帧率后,还要看ffmpeg 真正运行时使用的帧率,他会通过控制台讲真实帧率打印出来
    回复 有任何疑惑可以回复我~ 2020-12-27 12:30:02
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号