C#MP4文件.mp4元数据标签编辑

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#MP4文件.mp4元数据标签编辑相关的知识,希望对你有一定的参考价值。

我正在制作一个YouTube下载器,我遇到了一个我不明白如何修复的问题。基本上,您可以选择要下载的YouTube视频,并将其添加到队列中。下载后我使用MP4File .dll编写mp4元数据标签。

大多数YouTube下载和元数据标签都有效,但我认为当YouTube标题包含符号时​​,它不会更改元数据标签,而只会崩溃。

我调试了程序并在此方法中发现了问题:

    public static void UpdateMP4Details(string path, string title, string imagePreview)
    {
        try
        {
            MP4File file = MP4File.Open(@path); // Something wrong with the path

            file.Tags.Title = title; // Crashes here
            file.Tags.Artist = "Youtube";
            file.Tags.Artwork = DownloadImageFromUrl(imagePreview);
            file.Save();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message + "

Unable to save video details", title);
        }
    }

我得到的错误是:'对象引用未设置为对象的实例'我相信这是因为它无法找到符号所指的路径。

有时错误是:'必须指定有效的文件名'路径:

“C: Users MyUserName Documents Visual Studio 2015 Projects MusicDownloader MusicDownloader bin Debug TByte User1 Videos General Ed Sheeran - Perfect Duet(withBeyoncé)[Official Audio] .mp4”

这是一个非常奇怪的问题,我尝试了很多替代方案,但我相信这与路径中的符号有关,因为所有其他没有符号的YouTube视频都可以使用。

这有什么方法吗?有人可以帮忙吗?

答案

Windows应该对该文件名中的字符没有问题,但MP4File库可能没有问题。

是否可以下载文件,文件名首先不会导致问题?也许使用像youtube视频ID而不是视频标题这样的东西会起作用,因为那是一个只有ASCII的字符串。

以上是关于C#MP4文件.mp4元数据标签编辑的主要内容,如果未能解决你的问题,请参考以下文章

修改元数据(音视频/metadata/tag/标签)

python 用于MP4容器的小型元数据解析器,用于编辑.mov视频上数码相机保存的日期。

如何在 Java 中编辑 MP4 ID3 标签?

从 mp4 中删除旋转元数据

如何从 MP4 文件中提取元数据轨道

html5 video 添加MP4文件损坏?