首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Tweetinvi上传视频时出错

使用Tweetinvi上传视频时出错
EN

Stack Overflow用户
提问于 2016-06-22 00:33:08
回答 1查看 753关注 0票数 0

我正在尝试上传大于5MB但小于15 5MB的文件。在这种情况下它的10 In ..。来自sample-videos.com的视频样本

我正在使用Tweetinvi,它对小于5MB的文件很好,但是在块上传时失败。我试过简单和艰难的方法。

简单的方法:

代码语言:javascript
复制
        var video = File.ReadAllBytes(@"D:\Projects\SampleVideo_1280x720_10mb.mp4");
        var media = Upload.UploadVideo(video); // Error here... Invalid Content
        var tweet = user.PublishTweet(message, new PublishTweetOptionalParameters
        {
            Medias = { media }
        });

我已经从Git (当前为0.9.13.0 存储库)中提取了Tweetinvi解决方案,并看到在调用Upload.UploadVideo(.)时,上面的内容出现了错误“无效内容”。它似乎在命令FINALIZE上失败。

努力尝试:

代码语言:javascript
复制
        using (var fileStream = File.OpenRead(@"D:\Projects\SampleVideo_1280x720_10mb.mp4"))
        {
            var initSucceeded = uploader.Init("video/mp4", (int)fileStream.Length);

            byte[] buffer = new byte[4900000]; //Your chunk MUST be 5MB or less or else the Append function will fail silently.
            int bytesRead = 0;

            while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) > 0)
            {
                byte[] copy = new byte[bytesRead];
                Buffer.BlockCopy(buffer, 0, copy, 0, bytesRead);
                var appendResult = uploader.Append(new ChunkUploadAppendParameters(copy, "video/mp4", null) { SegmentIndex = uploader.NextSegmentIndex });
            }
            var video = uploader.Complete(); // Fails here... Returned error: Segments do not add up to provided total file size
            var tweet = user.PublishTweet(message, new PublishTweetOptionalParameters()
            {
                //Medias = { video }
                MediaIds = { video.MediaId.Value }
            });
        }

上述操作在upload.Complete()上失败,Twitter返回“段加不到提供的总文件大小”。

我遗漏了什么?

提亚

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-22 08:44:03

我想你的问题是视频文件的问题。这段视频似乎使用了6声道音频,Twitter公共上传API只允许开发者上传带有单声道或立体声的视频。

来源:https://dev.twitter.com/rest/media/uploading-media

我不是视频领域的专家,所以如果我是的话,你可以证明我是错的。

上述操作在upload.Complete()上失败,Twitter返回“段加不到提供的总文件大小”。

这个错误意味着你并没有发送你承诺给Twitter的所有字节。在INIT期间,您可以告诉Twitter媒体的大小,如果它在合并后的附加中接收到的值不等于您在INIT中指定的值,则会抛出您描述的错误。

PS :我试过使用一个2通道14.8 MB的mp4,它工作正常。var media = Upload.UploadVideo(binary);

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37956737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档