Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何为Go包装器正确配置ffmpeg_Go_Ffmpeg - Fatal编程技术网

如何为Go包装器正确配置ffmpeg

如何为Go包装器正确配置ffmpeg,go,ffmpeg,Go,Ffmpeg,我一直在尝试使用Go()编写的ffmpeg包装器,并尝试按照示例进行操作,但在成功构建之后,我遇到了一个错误,无法找到解码器。 这是发生错误的代码部分: if ctx.decStream = firstStream(ctx.decFmt); ctx.decStream == nil { log.Fatalf("Couldn't find a video stream.") } codecCtx := ctx.decStream.CodecContext() codec := avcodec

我一直在尝试使用Go()编写的ffmpeg包装器,并尝试按照示例进行操作,但在成功构建之后,我遇到了一个错误,无法找到解码器。
这是发生错误的代码部分:

if ctx.decStream = firstStream(ctx.decFmt); ctx.decStream == nil {
  log.Fatalf("Couldn't find a video stream.")
}

codecCtx := ctx.decStream.CodecContext()
codec := avcodec.FindDecoderByID(codecCtx.CodecID())
if codec == nil {
  log.Fatalf("Could not find decoder: %v\n", codecCtx.CodecID())
}
第一个\u流
功能:

func firstStream(fmtCtx *avformat.Context) *avformat.Stream {
  for _, stream := range fmtCtx.Streams() {
    switch stream.CodecContext().CodecType() {
      case avutil.MediaTypeVideo:
        return stream
    }
  }
  return nil
}
这与示例中的相同,也有相同的问题。我假设它不是基于代码的,但我无法理解它。我尝试注册所有格式,但实际上它发生在
init()函数中。

我使用的是Manjaro Linux 19.0.0,并从源代码处安装了FFmpeg 3.3.9。

您想使用什么解码器名称?您使用的是支持它的ffmpeg吗?也许可以尝试使用同一版本中的cli工具,如ffprobe和ffmpeg,并尝试转码?源视频采用MPEG4编码,但我也尝试了H.264中的另一个文件。两者都不起作用。你知道ffmpeg尝试使用哪种解码器吗?我有一种感觉,它可以探测哪个编解码器,但没有有效的解码使用等ffmpeg 3.3.9是相当古老的。可以尝试更新版本吗?我怎么知道?它找不到任何可以使用的解码器,我只能看到它们的ID。现在不知道,但他们什么也不知道,这是基于FFmpeg本身检索到的流信息的解码器ID。这个版本很旧,但在其他方面它无法编译,而且这个例子还是用我后来使用的同一个h.264文件进行了测试。