【问题标题】:X264 Error message when capturing video捕获视频时出现 X264 错误消息
【发布时间】:2014-01-28 19:47:56
【问题描述】:

我正在编写一个程序来将一些网络摄像头视频保存到文件中。我正在使用此处找到的 x264 编解码器 x264

当我尝试将帧写入文件时,我会弹出此错误消息。

x264vfw [警告]:可能会丢失几帧。修复方法 这个:

x264vfw [警告]:-如果您使用 VirtualDub 或其分支,则可以 启用“VirtualDub Hack”选项

x264vfw [警告]:-您可以启用“文件”输出模式

x264vfw [警告]:-您可以启用“零延迟”选项

我找到了这个VirtualDub Hack,但我没有使用虚拟配音。 我不确定文件输出模式和零延迟是什么意思。

我认为问题与编解码器有关,因为当我改用其他编解码器时,一切正常。我正在使用 C# 和 emgu,但我不认为这就是问题所在。

编辑

如果代码有帮助

public static void StartCapture()
{
    try
    {
        capture = new Capture();
        capture.SetCaptureProperty(Emgu.CV.CvEnum.CAP_PROP.CV_CAP_PROP_FRAME_WIDTH, 1920);  //1920
        capture.SetCaptureProperty(Emgu.CV.CvEnum.CAP_PROP.CV_CAP_PROP_FRAME_HEIGHT, 1080); //1080

        CaptureOutput = new VideoWriter
        (
            "capture output.avi",
            CvInvoke.CV_FOURCC('X','2','6','4'),
            50, //fps
            (int)capture.GetCaptureProperty(Emgu.CV.CvEnum.CAP_PROP.CV_CAP_PROP_FRAME_WIDTH), 
            (int)capture.GetCaptureProperty(Emgu.CV.CvEnum.CAP_PROP.CV_CAP_PROP_FRAME_HEIGHT), 
            true
        );

        if (capture != null)
        {
            capture.ImageGrabbed += SaveFrame;
            capture.Start();
        }
    }
    catch (Exception e)
    {
        MessageBox.Show(e.ToString());
    }
}

static void SaveFrame(System.Object sender, EventArgs e)
{
    Image<Bgr, Byte> video;
    video = capture.RetrieveBgrFrame();
    CaptureOutput.WriteFrame(video);
}

【问题讨论】:

  • 我认为我在 X264 上使用 avi 容器可能会造成一些麻烦

标签: c# opencv video-capture codec x264


【解决方案1】:

我知道有点晚了,但我想通了。解决方案(在 Windows 上)是设置 -1 而不是编解码器的fourcc。这会弹出一个对话框,您可以在其中选择编解码器,如果您选择 x264wfv,则有一个配置按钮可让您配置这些选项(零延迟对我有用)。下次编解码器将使用完全相同的设置,因此您可以使用fourcc 代码运行您的程序。

【讨论】:

  • 感谢您的回复,但错误信息仍然存在。我怀疑这个问题与我在 AVI 容器中使用 x264 编解码器有关。虽然这 可以 完成,但我认为 avi 容器不太适合 x264。因此,错误消息指出帧可能会丢失。
  • 我可能需要研究使用 gstreamer 和 C++ 在更好的容器中编码视频,因为 opencv 和 emgu 不支持这一点。
猜你喜欢
  • 1970-01-01
  • 2021-05-22
  • 1970-01-01
  • 1970-01-01
  • 2012-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多