- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试使用 ffmpeg 将 opengl 输出编码为 mp4 文件,但是当我想使用以下代码片段简单地用像素颜色填充 AvFrame 时:
for (y = 0; y < c->height; y++) {
for (x = 0; x < c->width; x++) {
int offset = 3 * (x + y * c->width);
if (x > 2* c->width / 3 && x <c->width )
{
frame->data[0][offset + 0] = 0; // B
frame->data[0][offset + 1] = 0; // G
frame->data[0][offset + 2] = 255; // R
}
else if(x < 2 * c->width / 3 && x > c->width / 3) {
frame->data[0][offset + 0] = 0; // B
frame->data[0][offset + 1] = 255; // G
frame->data[0][offset + 2] = 0; // R
}
else {
frame->data[0][offset + 0] = 255; // B
frame->data[0][offset + 1] = 0; // G
frame->data[0][offset + 2] = 0; // R
}
}
然后我有这个视频输出:
我有 ffmpeg 的这个选项:
编解码器:libx264rgb& pix_fmt : AV_PIX_FMT_BGR24
事实上我期待这样的视频输出:
我也是 ffmpeg 的新手,我真的不知道有关视频编码的高级知识,所以有人知道有什么问题吗?
最佳答案
我改变了:
ret = av_frame_get_buffer(frame, 32);
到
ret = av_frame_get_buffer(frame, 1);
它修复了。
关于c++ - 如何逐像素填充AvFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44048078/
我的总体想法是 frame.data[]根据视频的像素格式(RGB 或 YUV)来解释。但是有什么通用的方法可以从帧中获取所有像素数据吗?我只想计算帧数据的哈希值,而不是解释它来显示图像。 根据 AV
我有一个简单的 C++ 应用程序,它使用 FFmpeg 3.2 接收 H264 RTP 流。为了节省CPU,我使用编解码器h264_cuvid进行解码部分。我的 FFmpeg 3.2 是在启用硬件加速
我正在使用 av_frame_alloc() 函数创建 AVFrame 对象并使用内部调用 av_frame_unref() 的 av_frame_free(&frame) 清除它,但它没有正确清理内
我正在编写一个使用 FFMPEG 的应用程序我需要一种方法来旋转 AVFrame s 为 90、180 和 270 度,因为相机的位置可能不同。我听说有过滤器可以做类似的事情。我读了filtering
我处理来自 AVFrame.data 的原始数据。此帧的像素格式为 AV_PIX_FMT_YUV420P。我想了解此数据位于哪个值范围内。 似乎 UV(在 YUV 方案中)必须在 [-128, 128
我使用 Win32 API 实现了一个桌面录制程序。视频捕获功能有效,但我不知道将音频放入 FFmpeg 编码器的数据结构中。 下面的代码将获取默认输出音频的数据。 // Set wave forma
我想打印出视频帧的一些属性:我研究了 AVFrame 结构,但只发现了以下令人失望的地方: attribute_deprecated short * dct_coeff attribute_de
我正在使用 libav(为 MSVC 构建的 2.7)使用 dshow 打开相机: input_format = av_find_input_format("dshow"); avformat_ope
我在将原始视频数据写入 AVFrame 时遇到段错误和/或超出范围的内存写入,因此无法使用 ffmpeg 库对视频进行编码。因此,我只想问我的一个假设是否正确。 我是否正确假设 AVFrame.dat
为了方便管理AVFrame资源,我想把AVFrame转成class,但是不知道怎么写我的复制构造函数和赋值函数用默认的AVFrame(使用av_frame_alloc()来分配)。 最佳答案 你有两个
我将 AVFrames 收集到数组中,然后释放它们,但这会导致内存泄漏。 extern "C" { #include #include } #include #include AVFrame
我想通过使用 ffmpeg 的功能而不是命令行实用程序在 AVFrame 上绘制视频叠加层,如线条、圆形、矩形和打印文本。 有没有人知道怎么做? 你有这个函数的源代码吗? 最佳答案 当我开始处理视频流
我想从一个特殊的框架(比方说pic)制作一个备份框架(AVFrame)。所以,我写了 AVFrame* bkf = avcodec_alloc_frame(); memcpy(bkf,pic,si
我尝试将原始 PCM 声音编码为 G711A 和 G711U,然后对其进行解码,使用此编解码器一切正常,因为我可以为 AVCodecContext frame_size 选择任何值进行编码,但在 Op
我试图理解 AVFrame,特别是 linesize 属性。 这是我解码的 AVFrame 属性: width = 640 height= 360 linesize[0] = 640 linesize
我试图找到 AVFrame.linesize[] 的每个单元格的含义,但我没有找到。 据我了解,linesize[0] 是宽度,linesize[1] 是高度。 如果我是对的,其他单元格是什么意思?
作为一个更大项目的一部分,我正在尝试同时解码多个高清 (1920x1080) 视频流。每个视频流都以原始 yuv420p 格式存储在 AVI 容器中。我有一个 Decoder 类,我从中创建了不同线程
我有一个来自 FormatContext 的视频的 AVStream。 [avstream] 读取数据包 解码来自视频的数据包。 现在显示以下内容。 Packet DTS -> 7200.00
我需要访问 FFMPEG 的 AVFrame 对象的每个像素信息(如果它是 RGB,那么每个像素的每个颜色、R、G 和 B) 我怎样才能做到这一点? 最佳答案 如果您已经前进到正确的帧 - 类似于:
如何调整 AVFrame 的大小?我 这是我目前正在做的事情: AVFrame* frame = /*...*/; int width = 600, height = 400; AVFrame* re
我是一名优秀的程序员,十分优秀!