ffplay 读取单通道的灰度图片时会将其扩充为 AV_PIX_FMT_RGB0,upload_texture() 函数中对应的 SDL 格式为 SDL_PIXELFORMAT_BGR888,因此可以正常播放。

经过神经网络算法处理后得到单通道灰度帧数据,ffplay 中的 upload_texture() 函数进行处理时,AV_PIX_FMT_GRAY8 对应的 SDL 格式为 SDL_PIXELFORMAT_UNKNOWN,视频播放会中断。因此需要把灰度帧使用 sws_scale() 函数进行转化。

/* frame -> frameRGB *//* frameRGB -> torch::Tensor *//* torch::Tensor -> frameGRAY *//* frameGRAY -> frame */
torch::Tensor frameGRAY = out;
int frameGRAY_width = frameRGB->width;
int frameGRAY_height = frameRGB->height;
*img_convert_ctx = sws_getCachedContext(*img_convert_ctx,frameGRAY_width, frameGRAY_height, AV_PIX_FMT_GRAY8, frame->width, frame->height, frame->format, sws_flags, NULL, NULL, NULL);
if (*img_convert_ctx != NULL) {uint8_t *pixels[4], *frameGRAY_data[8];int pitch[4], frameGARY_linesize[8];frameGRAY_data[0] = out.data_ptr();frameGARY_linesize[0] = frameGRAY_width;if (!SDL_LockTexture(*tex, NULL, (void **)pixels, pitch)) {sws_scale(*img_convert_ctx, (const uint8_t * const *)frameGRAY_data, frameGARY_linesize,0, frameGRAY_height, frame->data, frame->linesize);SDL_UnlockTexture(*tex);}
} else {av_log(NULL, AV_LOG_FATAL, "Cannot initialize the conversion context\n");ret = -1;
}

[FFmpeg] ffplay 播放灰度帧相关推荐

  1. ffmpeg ffplay播放延时大问题:播放延时参数设置

    本文转自:http://blog.csdn.net/cai6811376/article/details/52637158 使用ffplay播放视频源时,rtsp/rtmp等,会有一定的延时,这里我们 ...

  2. 【FFmpeg】ffplay 播放视频命令 ( 播放 | 暂停 | 停止 | 音量控制 | 进度控制 | 音频流 / 视频流 / 字幕流 / 节目切换 )

    FFmpeg 系列文章目录 [FFmpeg]Windows 搭建 FFmpeg 命令行运行环境 [FFmpeg]FFmpeg 相关术语简介 ( 容器 | 媒体流 | 数据帧 | 数据包 | 编解码器 ...

  3. ffmpeg命令转音乐为wav格式,wav格式与PCM数据相互转换,ffplay播放PCM数据

    1.卸载ffmpeg: brew uninstall ffmpeg 2.安装ffmpeg和ffplay brew install ffmpeg --with-ffplay 3.转MP3为wav ffm ...

  4. ffplay播放器移植VC的工程:ffplay for MFC

    本文介绍一个自己做的FFPLAY移植到VC下的开源工程:ffplayfor MFC.本工程将ffmpeg项目中的ffplay播放器(ffplay.c)移植到了VC的环境下.并且使用MFC做了一套简单的 ...

  5. FFplay播放器分析

    FFplay 是 FFmpeg 官方提供的一个播放器的实现,全部的逻辑代码都在 ffplay.c 里面,只有不到 4 千行代码,麻雀虽小,五脏俱全. FFplay 播放器支持大部分常见的播放器功能,例 ...

  6. 基于ffmpeg的播放器,播放m3u8文件时,seek问题

    文章目录 1,准备知识, seek代码流程: 策略: 2,问题描述, 3,原因分析及其修改, 拿到这个问题,在不debug代码或查看日志的情况下,根据上面1的准备知识,可以大概判断出原因. 针对问题视 ...

  7. FFmpeg/FFplay/常用命令

    FFmpeg命令 ffmpeg命令查看帮助文档 ◼基本信息:ffmpeg -h ◼高级信息:ffmpeg -h long ◼所有信息:ffmpeg -h full 若嫌打印过多: ffmepg -h ...

  8. ffmpeg ffplay ffprobe使用说明

    在CSDN上的这一段日子,接触到了很多同行业的人,尤其是使用FFMPEG进行视音频编解码的人,有的已经是有多年经验的"大神",有的是刚开始学习的初学者.在和大家探讨的过程中,我忽然 ...

  9. ffmpeg/ffplay 添加实时的时间水印

    右上角添加时间水印 ffmpeg -i 0.ts -vf drawtext="fontfile=arial.ttf:x=w-tw:fontcolor=white:fontsize=30:te ...

最新文章

  1. Python os.getcwd() 方法
  2. IntelliJ IDEA 环境常用设置整理
  3. laravel5.6 数据库获取数据模式变为’数组‘
  4. AB1601继电器干扰问题
  5. 查看SAP CRM和C4C的UI technical信息
  6. 14、mysql中事务的应用
  7. gdb 扩展 默认参数_默认方法一种扩展旧代码的方法
  8. Kinect深度图与摄像头RGB的标定与配准(转载文章)
  9. Java 面向对象 之 对象引用 this的引用
  10. java版spring cloud+spring boot+redis多租户社交电子商务平 (三)SpringBoot用JdbcTemplates访问Mysql...
  11. EMC与电阻、电容和电感的关系
  12. 《创业时代》原型:为什么Talkbox、子弹短信都失败了?
  13. 什么是绿色计算(Green Computing)?
  14. The project uses Gradle 4.1 which is incompatible with Java 11 or newer
  15. 微信小程序之自定义表单组件(radio)
  16. 错误:未报告的异常错误,必须对其进行捕获或声明以便抛出
  17. 思维导图软件 XMind 8 和 XMind 2020的选择
  18. VUE 学习之parent 选项
  19. 儒猿秒杀季!互联网大厂的企业级风控系统项目实战
  20. “谁动了我的奶酪?”的故事

热门文章

  1. 前端显示文本时的格式设置
  2. 计算机专项能力局域网管理,全国计算机信息技术考试局域网管理(Windows NT平台)管理员级考试考试大纲...
  3. android get方法的使用方法,android之HttpPostHttpGet使用方法介绍
  4. caj格式转pdf的3种方法
  5. 计算机英语评价,关于计算机专业英文自我评价
  6. eclipse 64位_Eclipse安装教程
  7. python网络安全协议_python网络安全
  8. 【caffe-windows】 caffe-master 之 卷积核可视化(利用matlab)
  9. Github查看文件历史提交和修改记录
  10. Python——Youki觉得好用的Object父类的属性方法