问题标签 [fourcc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
12 回答
8101 浏览

c++ - 在 C++ 中设置 FourCC 值

我想在 C++ 中设置一个FourCC值,即一个无符号的 4 字节整数。

我想显而易见的方法是#define,例如

接着:

你能想到的最优雅的方式是什么?

0 投票
1 回答
408 浏览

video - 将 AVI 文件与视频fourcc xvid、mp42、dx50 连接是否安全?

我有一堆具有相同音频编解码器、视频分辨率的 AVI 文件,但视频编解码器不同:它们有fourcc xvid、mp42 和dx50。连接它们是否安全,即是否有与所有这些兼容的视频解码器?我应该使用哪个fourcc?

0 投票
1 回答
415 浏览

delphi - 从 Delphi 6 应用程序中的 FOURCC ID 查找压缩器/过滤器友好名称?

我有一个 Delphi 6 应用程序,它要求用户使用 AVISaveOptions() 选择音频和视频压缩器。然后我将每个选择的 FOURCC ID 存储在一个数据文件中。我想使用属于每个压缩器/过滤器的 FOURCC ID 查找每个选择的过滤器友好名称,因此我可以稍后向用户显示他们当前的选择,压缩器/过滤器友好名称显示在所选 FOURCC ID 旁边. 我怎样才能做到这一点?

请注意,我只想向用户显示与 AVISaveOptions() 对话框中显示的相同的长表单名称,该对话框通过向用户提供一个包含友好名称的列表框来提示用户进行选择。

0 投票
0 回答
358 浏览

visual-studio - autoexp.dat 中简单 typedef 类型的可视化工具(将fourcc DWORD显示为字符)

我们在代码中使用了很多fourCC自定义类型,例如:

我们希望能够在 autoexp.dat 中添加一个可视化工具来将这些显示为四个字符。

不幸的是,autoexp.dat 的可视化工具似乎忽略了 typedef,并且不想触及基本类型(正如这里确认的在 autoexp.dat 中创建一个简单的 VS2008 可视化工具(转换问题)

是否有任何已知的解决方法,对代码的性能没有任何影响,能够在调试器中将这些fourcc视为字符?

0 投票
2 回答
6238 浏览

opencv - linux上的无损avi编码

我正在尝试使用 opencv 编写视频。准确地做到这一点对我来说很重要——所以它必须是一个无损编解码器。我在 Ubuntu 12.04 上使用 OpenCV 2.4.1

以前,我使用的是fourcc 代码0。这给了我想要的确切结果,并且我能够完美地恢复图像。

我不确定发生了什么,但在最近的一次更新中(2012 年 7 月 20 日左右),出了点问题,我不再能够用这个fourcc 代码编写文件。我真的不记得它是什么了,但它可能来自进行更新,从我的软件中心删除一些软件,以及我在一般清洁期间所做的一些其他事情......

当我使用 mediainfo (http://www.fourcc.org/identifier/) 检查旧文件时,我看到以下结果:

现在,我看到当我使用 0fourcc 编解码器编写时,程序实际上默认使用 i420 编解码器。这是我现在尝试编写的文件之一的输出:

这种格式和我尝试使用的其他格式(如 huffyuv HFYU)对我不起作用,因为我最终会得到这样的效果http://imgur.com/a/0OC4y - 你会看到明亮的伪影由于在 HFYU 的情况下,我假设是有损压缩或色度子采样,这应该是无损的。您正在查看的是我的一个视频中的红色通道。当您同时查看所有 3 个通道时,感知效果可以忽略不计,但我必须准确地重建图像。

此外,虽然我可以在 vlc 等媒体播放器中播放我的旧文件,但我突然发现它们与 opencv 完全不兼容。当我尝试使用视频捕获打开旧文件时,打开步骤工作正常,但尝试执行读取操作会导致段错误。此外,当我尝试使用以下任一方式编写时:

出于某种原因,Opencv 默认为 I420。

接下来,我尝试使用一些替代编解码器。“DIB”似乎对我有用,在 opencv 网站 (http://opencv.willowgarage.com/wiki/VideoCodecs) 上,它被列为“推荐”编解码器。但是,尝试使用它会导致以下消息:

我检查了这个编解码器的 opencv 源代码,偶然发现了以下内容:

我尝试安装 qt4 并使用 WITH_QT 标志重新配置,但这并没有改变任何东西。我也尝试取消注释那部分代码并重新安装opencv,但这也不起作用。

我的最终目标是以任何方式有效地存储和检索每个像素为 16 位的视频流(如 32float 可以正常工作,然后它不需要完美)。现在我正在将 16 位解压缩到红色和绿色通道中,这就是为什么我需要它是完美的 - 因为红色通道中的 1 错误在最终结果中乘以 256。我没有任何可用的fourcc代码成功。

0 投票
1 回答
1064 浏览

c++ - 从 videoInput 直接显示 YUY2 像素输出

我正在使用videoInput与 DirectShow 交互并从我的网络摄像头获取像素数据。

我问过的另一个问题中,人们建议像素格式只是按照 Y、U 和 V 通道的顺序附加的数组。

FourCC 的网站建议像素格式实际上并不遵循这种模式,而是 |Y0|U0|Y1|V0|Y2|U0|Y3|V0|

我正在研究一些将 YUY2 输入图像转换为 RGB 和 YV12 的函数,在几乎没有成功之后,我认为这可能是我如何解释初始 YUY2 图像数据的问题。

我是否正确假设像素数据应采用 FourCC 网站的格式,或者 Y、U 和 V 通道是否是已集中的单独数组(因此数据按通道顺序排列,例如:YYYYUUVV?

0 投票
1 回答
95 浏览

surface - 如何在 SlimDX 中使用 FOURCC 格式?

查看SlimDX 定义的表面格式,似乎缺少一些。我对使用NV12格式很感兴趣。

由于格式被定义为枚举,因此我无法传入 FOURCC 格式,因为我可以使用非托管代码

有没有办法解决这个问题?

0 投票
3 回答
11092 浏览

macos - 使用 OpenCV ffmpeg 在 Mac 上编写 MP4 文件

我在 Mac 上使用 OpenCV 和 ffmpeg 来编写视频。我已经能够使用编解码器/fourcc 代码 FMP4 成功编写 .avi 文件。但是,我想编写 .mp4 文件。当我尝试使用fourcc FMP4 编写.mp4 文件时,出现此错误:

当我使用 AVC1 时,出现以下错误:

这里有没有人知道正确的编解码器与 OpenCV 和 ffmpeg 一起使用来写入 Mac 上的 MP4 容器?

如果 AVC1 是正确的编解码器,我该如何正确安装 ffmpeg + OpenCV?我做了

我用来打开录像机的电话:

当我跑步时,x264 --help我得到

谢谢,-s

0 投票
1 回答
1491 浏览

c++ - 如何从 AM_MEDIA_TYPE 获取 MEDIASUBTYPE 的名称,c++

我正在使用 directshow 从我的网络摄像头中抓取帧。在网络摄像头的配置过程中(当我设置分辨率、fps 等时),我可以从摄像头获得多种选择。(其中 47 个)。

目前我使用 for 循环遍历 cam 的所有可用设置,我只是在控制台中打印值。但是我没有很好的方法来打印 Media 子类型的值。

有没有打印媒体子类型实际名称的好方法?

现在我像这样测试它:

(mT = AM_MEDIA_TYPE) 这不是一个好方法。我想使用打印子类型实际名称的东西。

谢谢!

0 投票
1 回答
2370 浏览

c# - FourCC 作为 int C#

我正在使用一个 SDK,它需要将 AVI 编解码器作为 FourCC 值的 8 位 int 表示形式传递。FourCC 值为 WVC1,我尝试将 ASCII 转换为每个字符的相应 int 值,我认为这将是 87864301,但这是不正确的。

有谁知道是否有代表 FourCC 值的标准整数值集,或某种转换它的方法?