gpt4 book ai didi

.net - youtube - 视频上传失败 - 无法转换文件 - 视频编码错误?

转载 作者:行者123 更新时间:2023-11-28 21:40:57 28 4
gpt4 key购买 nike

我正在使用 .NET 创建一个视频上传应用程序。虽然是与 YouTube 通信并上传文件,处理该文件失败。 YouTube 给我错误消息,“上传失败(无法转换视频文件)。”这应该意味着“您的视频的格式我们的转换器无法识别...”

我尝试了两个不同的视频,都上传了当我手动时处理得很好。所以我怀疑我的代码是a.) 没有正确编码视频和/或 b.) 没有发送我的 API正确请求。

下面是我如何构建我的 API PUT 请求并对视频:

如有任何关于错误的建议,我们将不胜感激。

谢谢

附言我没有使用客户端库,因为我的应用程序将使用可续传上传功能。因此,我正在手动构建我的 API请求。

文档:http://code.google.com/intl/ja/apis/youtube/2.0/developers_guide_protocol_resumable_uploads.html#Uploading_the_Video_File

代码:

            // new PUT request for sending video
WebRequest putRequest = WebRequest.Create(uploadURL);

// set properties
putRequest.Method = "PUT";
putRequest.ContentType = getMIME(file); //the MIME type of the uploaded video file

//encode video
byte[] videoInBytes = encodeVideo(file);

public static byte[] encodeVideo(string video)
{
try
{
byte[] fileInBytes = File.ReadAllBytes(video);
Console.WriteLine("\nSize of byte array containing " + video + ": " + fileInBytes.Length);
return fileInBytes;
}
catch (Exception e)
{
Console.WriteLine("\nException: " + e.Message + "\nReturning an empty byte array");
byte [] empty = new byte[0];
return empty;
}
}//encodeVideo

//encode custom headers in a byte array
byte[] PUTbytes = encode(putRequest.Headers.ToString());

public static byte[] encode(string headers)
{
ASCIIEncoding encoding = new ASCIIEncoding();
byte[] bytes = encoding.GetBytes(headers);
return bytes;
}//encode

//entire request contains headers + binary video data
putRequest.ContentLength = PUTbytes.Length + videoInBytes.Length;

//send request - correct?
sendRequest(putRequest, PUTbytes);
sendRequest(putRequest, videoInBytes);

public static void sendRequest(WebRequest request, byte[] encoding)
{
Stream stream = request.GetRequestStream(); // The GetRequestStream method returns a stream to use to send data for the HttpWebRequest.

try
{
stream.Write(encoding, 0, encoding.Length);

}
catch (Exception e)
{
Console.WriteLine("\nException writing stream: " + e.Message);
}
}//sendRequest

最佳答案

我不知道 YouTube 正在寻找什么格式,但如果它是一种在您的 Windows 系统上应该可以识别的格式,我建议您将转换后的视频保存到磁盘上的文件中,然后尝试打开它。

关于.net - youtube - 视频上传失败 - 无法转换文件 - 视频编码错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3000200/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com