当前位置: 首页 > 面试题库 >

在Linux上使用FFmpeg从OpenCV 3编写x264

蒋培
2023-03-14
问题内容

我在通过FFmpeg(“’X’,‘2’,‘6’,‘4’” FOURCC)用OpenCV
3编写h264视频时遇到问题。到目前为止,我已经看过所有与SO相关的文章,但是没有任何帮助。码:

cv::VideoWriter writer(output_path.string(),    CV_FOURCC('X','2','6','4'), 60, frame_size);

输出:

OpenCV:FFMPEG:标签0x34363258 /’X264’不支持编解码器ID 28和格式’mp4 / MP4(MPEG-4 Part
14)’OpenCV:FFMPEG:后退以使用标签0x00000021 /’!???’

产生的视频非常小(按字节),并且不可读。将four_cc设置为-1会导致FFmpeg产生“未知标签”,我没有得到任何提示来选择编解码器,就像其他人建议的那样。

OpenCV 3文档指出:

带有MP4容器的FFMPEG后端本机使用其他值作为fourcc代码:请参见ObjectType,因此您可能会从OpenCV收到有关fourcc代码转换的警告消息。

有任何建议/解决方法吗?

PS ffmpeg是Ubuntu维护者提供的最新信息,它列出了使用 --enable-libx264

编辑: 我试图使用mkv容器而不是mp4。关于不支持标签的警告消失了,但是仍无法读取生成的视频。


问题答案:

该问题与显示的警告无关。我正在尝试编写单通道图像,而VideoWriter则期望使用3通道彩色图像(VideoWriter的构造函数的第5个参数isColor的默认值为“true”)。解决方案是将isColor设置为false。



 类似资料:
  • 我正在尝试使用ffmpeg逐帧编写视频,如下所述:http://zulko.github.io/blog/2013/09/27/read-and-write-video-frames-in-python-using-ffmpeg/ 然而,我总是得到一个OSError:[Errno 22]无效参数。我在Windows7上使用Python 3.4。代码如下: 任何帮助都非常感谢。 编辑:根据此处的要求

  • 问题内容: 我必须对ffmpeg使用以下命令 我已经在Mac上成功安装了ffmpeg。我尝试使用FFMPEGWrapper,但是使用“ map”似乎没有任何此类参数。 我需要知道如何从视频中提取流。我已经可以访问流了,因为服务器端在端使用ffprobe向我提供了这些流。 问题答案: 将FFMpeg用于IOS的最佳方法是MobileFFMpeg库。 这是来源:https : //github.com

  • 我试图用ffmpeg来编写mkv文件,用FFV1和FLAC编码,用NTSC格式,但是VLC和媒体信息中显示的帧率不正确。 下面是我如何创建和配置输出格式上下文:

  • 我希望将fMP4片段转换为TS片段(用于HLS),因为片段是在iOS设备上使用FFmpeg编写的。 我试图在iOS上实现实时上传,同时在本地保持无缝的高清副本。 1)启动由AAC编码器编写的音频帧,产生间隙。 2)由于视频帧长33.33ms,音频帧长0.022ms,所以它们可能不在文件末尾排队。 3)在Mac OS上缺乏帧精确编码,但在iOS上没有详细信息 但是,我对FFmpeg C API还不够

  • 问题内容: 我正在尝试 使用FTDI通过USB端口发送/接收数据 ,因此我需要使用C / C ++处理串行通信。我正在使用 Linux (Ubuntu)。 基本上,我已连接到正在侦听传入命令的设备。我需要发送这些命令并阅读设备的响应。命令和响应都是 ASCII字符 。 使用GtkTerm一切正常,但是,当我切换到C编程时,遇到了问题。 这是我的代码: 发生的结果是返回0(根本不读取任何字节)或阻塞

  • 问题内容: 我需要每天在特定时间在Linux服务器上运行一段Java代码。 目前,我正在Ubuntu桌面上对其进行测试,方法是从终端运行它,并按要求正常运行。为了进行调度,我从这里开始使用库。 在实际服务器上,将其作为进程运行的正确方法是什么? 我的意思是,在桌面上,我从终端运行指定接近当前时间的代码,第一次对其进行测试,然后将其停止(^ Z)。 在服务器上将它推送到后台是正确的方法吗?我相信必须