C# 向视频添加文本

C# 向视频添加文本,c#,video-encoding,video-editing,C#,Video Encoding,Video Editing,我正在尝试向视频中添加文本。到目前为止,我一直在使用,这就是我目前拥有的: using (var vFReader = new VideoFileReader()) { vFReader.Open(@"\video.mp4"); using (var vFWriter = new VideoFileWriter()) { vFWriter.Open(@"\video2.mp4", vFReader.Width, vFReader.Height, vFRe

我正在尝试向视频中添加文本。到目前为止,我一直在使用,这就是我目前拥有的:

using (var vFReader = new VideoFileReader())
{
    vFReader.Open(@"\video.mp4");

    using (var vFWriter = new VideoFileWriter())
    {
        vFWriter.Open(@"\video2.mp4", vFReader.Width, vFReader.Height, vFReader.FrameRate, VideoCodec.MPEG4, vFReader.BitRate);

        for (var i = 0; i < vFReader.FrameCount; i++)
        {
            var image = vFReader.ReadVideoFrame();

            var graphics = Graphics.FromImage(image);

            graphics.SmoothingMode = SmoothingMode.HighQuality;
            graphics.DrawString("Custom text", font, Brushes.White, new Point(vFReader.Width / 2, 25), format);

            graphics.Flush();

            vFWriter.WriteVideoFrame(image, (uint)i);
        }
        vFWriter.Flush();
    }
}
使用(var vfreeader=new VideoFileReader())
{
vfreeader.Open(@“\video.mp4”);
使用(var vFWriter=new VideoFileWriter())
{
vFWriter.Open(@“\video2.mp4”、vfreear.Width、vfreear.Height、vfreear.FrameRate、VideoCodec.MPEG4、vfreear.BitRate);
对于(var i=0;i
这在技术上是可行的,但与原始视频相比,生成的视频质量非常差。我做错了什么

这是质量上的区别

原创视频:

编辑视频:


您可以添加输入和输出视频的并排比较吗?如果只保存原始图像而不添加文本,质量是否同样糟糕?@ManfredRadlwimmer我添加了质量差异的屏幕截图。此外,如果我不以任何方式编辑位图,质量也会一样差。要么用于编码的编解码器不是很好,要么这只是重新编码视频的副作用。您可能需要提高比特率或找到更好的编解码器。原始视频可能没有解压缩,因此每次迭代都会损失一点质量。这是一个极端的例子,JPEG也发生了同样的事情,基本上效果相同,但更值得注意:很高兴我能帮忙:)