如何上传流媒体视频?
How to Upload Streamable Video?
我想问一下。我使用 UploadFileAsync 和 Post 使用 SendMediaAsync 上传视频,但是当我检查聊天时,显示文件没有缩略图并且无法流式传输(如普通文档文件)。你能告诉我如何使用它观看直播吗?
这是我的代码:
WTelegram.Client.ProgressCallback progress = new WTelegram.Client.ProgressCallback((p,r) => {
Console.Write(p*100/r+"%\r");
});
SetLog("Uploading File...");
var inputFile = await client.UploadFileAsync("video\myfile.mp4", progress);
var target = chats.chats[channelId];
SetLog($"Sending a message in chat {target.ID}: {target.Title}");
await client.SendMediaAsync(target, "Test", inputFile);
这是上面的代码结果:
Result Above Code
我想达到的目标:
Image
当你发送一个小视频(无需按播放按钮即可立即自动播放)时,SendMediaAsync
就足够了。
但是,对于更大的 mp4 视频,Telegram 不会尝试启动 downloading/analyze/play 直到用户按下播放或下载按钮。因此,如果您希望 mp4 显示为可流式传输,则需要调用类似以下内容:
await client.SendMessageAsync(targetPeer, "caption", new InputMediaUploadedDocument
{
file = mediaInputFile, mime_type = "video/mp4",
attributes = new[] {
new DocumentAttributeVideo { duration = 183, w = 1280, h = 720,
flags = DocumentAttributeVideo.Flags.supports_streaming }
}
});
这意味着你必须在发送前自己分析视频,才能在上面的代码中传递正确的 duration/width/height 视频。
我尝试将 0 传递给这些,它似乎也有效,但预览将显示为正方形并且持续时间显示为“0:00”,直到用户按下播放。
预览图像也可能是 blank/black,除非您将以下内容添加到 InputMediaUploadedDocument:thumb = photoInputFile, flags = InputMediaUploadedDocument.Flags.has_thumb
(这意味着您之前必须上传过缩略图)
我想问一下。我使用 UploadFileAsync 和 Post 使用 SendMediaAsync 上传视频,但是当我检查聊天时,显示文件没有缩略图并且无法流式传输(如普通文档文件)。你能告诉我如何使用它观看直播吗?
这是我的代码:
WTelegram.Client.ProgressCallback progress = new WTelegram.Client.ProgressCallback((p,r) => {
Console.Write(p*100/r+"%\r");
});
SetLog("Uploading File...");
var inputFile = await client.UploadFileAsync("video\myfile.mp4", progress);
var target = chats.chats[channelId];
SetLog($"Sending a message in chat {target.ID}: {target.Title}");
await client.SendMediaAsync(target, "Test", inputFile);
这是上面的代码结果:
Result Above Code
我想达到的目标:
Image
当你发送一个小视频(无需按播放按钮即可立即自动播放)时,SendMediaAsync
就足够了。
但是,对于更大的 mp4 视频,Telegram 不会尝试启动 downloading/analyze/play 直到用户按下播放或下载按钮。因此,如果您希望 mp4 显示为可流式传输,则需要调用类似以下内容:
await client.SendMessageAsync(targetPeer, "caption", new InputMediaUploadedDocument
{
file = mediaInputFile, mime_type = "video/mp4",
attributes = new[] {
new DocumentAttributeVideo { duration = 183, w = 1280, h = 720,
flags = DocumentAttributeVideo.Flags.supports_streaming }
}
});
这意味着你必须在发送前自己分析视频,才能在上面的代码中传递正确的 duration/width/height 视频。 我尝试将 0 传递给这些,它似乎也有效,但预览将显示为正方形并且持续时间显示为“0:00”,直到用户按下播放。
预览图像也可能是 blank/black,除非您将以下内容添加到 InputMediaUploadedDocument:thumb = photoInputFile, flags = InputMediaUploadedDocument.Flags.has_thumb
(这意味着您之前必须上传过缩略图)