【问题标题】:Which video format is right for `sendVideo` method in Telegram Bot APITelegram Bot API 中的 `sendVideo` 方法适合哪种视频格式
【发布时间】:2016-12-06 18:40:11
【问题描述】:

Telegram Bot API sendVideo方法可以使用哪种视频格式?

在页面上他们只提到“H.264/MPEG-4 AVC”

所以如果我用

转换视频(没有声音)
ffmpeg -i input -an -c:v libx264 -crf 26 out.m4v

我收到 ok:true 作为响应,但在 Telegram 客户端中看不到预览(模糊的静止图像)。

【问题讨论】:

    标签: video telegram-bot


    【解决方案1】:

    尝试添加 -pix_fmt yuv420p,这对我有用。

    注意:取自@Pastafarianist 在同一个问题中的评论,这应该是一个答案。

    【讨论】:

      【解决方案2】:

      这真的让我抓狂:文件扩展名是 ".mp4" 很重要。 如果您上传带有“.m4v”扩展名的视频,您将看不到预览窗口,视频会在外部播放器中打开。

      所以这是我重新编码和调整视频大小并使用 curl 将其发送到机器人的最终命令:

      ffmpeg -i input -an -c:v libx264 -crf 26 -vf scale=640:-1 out.mp4
      curl -v -F chat_id=CHATID -F video=@out.mp4 -F caption=foobar https://api.telegram.org/bot<TOKEN>/sendVideo
      

      【讨论】:

      • 我不确定问题出在哪里,但使用完全相同的命令生成的视频可以由桌面应用程序读取,但不能通过 android 应用程序读取。关于为什么会发生这种情况的任何提示?
      • @SimonC。是否有可能您使用的是不支持 x264 解码的旧 android 版本?
      • 这可能是个问题,但我知道其他用户使用较新的手机无法观看视频。另一方面,电报应用程序可以毫无问题地阅读手机制作的视频。我猜电话正在使用另一种格式?另一件事是我使用的是 FreeBSD 的 ffmpeg。也许问题来自freeBSD libx264编解码器?
      • 添加 -pix_fmt yuv420p 似乎可以让我在 Android 上播放。
      • ffmpeg -i "/home/folder/bangkok.avi" -c:v libx264 -crf 26 -vf scale=642:-1 -pix_fmt yuv420p16le out.mp4 这适用于桌面和安卓手机
      猜你喜欢
      • 2016-03-14
      • 1970-01-01
      • 1970-01-01
      • 2020-08-10
      • 1970-01-01
      • 2022-11-12
      • 2018-05-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多