Telegram Bot sendVideo方法预览宽高比异常问题求助
解决Telegram Bot sendVideo预览宽高比错误及参数不生效问题
- 检查并修正视频文件的原生元数据
Telegram生成预览时会优先读取视频文件自身的宽高比元数据,手动传入的width/height参数可能被忽略。先通过工具确认视频元数据是否正确:
# 用ffprobe查看视频宽高 ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=s=x:p=0 your_video.mp4
如果元数据中的宽高比错误,用ffmpeg修正:
# 修正为16:9比例(示例) ffmpeg -i your_video.mp4 -c:v libx264 -crf 23 -vf "scale=1920:1080" -c:a copy corrected_video.mp4
重新发送修正后的视频,Telegram应该能识别正确的宽高比。
- 改用本地文件上传而非URL发送
通过URL发送视频时,Telegram的参数解析逻辑可能会忽略手动指定的width/height。换成直接上传本地文件,同时传入参数,更容易让Telegram遵循你设置的宽高:
以Python的python-telegram-bot库为例:
from telegram import Bot bot = Bot(token="YOUR_BOT_TOKEN") # 上传本地文件并指定宽高 bot.send_video( chat_id="TARGET_CHAT_ID", video=open("corrected_video.mp4", "rb"), width=1920, height=1080 )
- 手动生成并指定自定义缩略图
如果前两种方法无效,直接生成符合目标宽高比的缩略图,通过thumb参数传给sendVideo,强制使用你指定的预览图:
先用ffmpeg生成缩略图:
# 从视频第1秒截取一帧,缩放到320x180(16:9比例) ffmpeg -i your_video.mp4 -ss 00:00:01.0 -vframes 1 -vf "scale=320:180" custom_thumb.jpg
调用API时带上缩略图参数:
bot.send_video( chat_id="TARGET_CHAT_ID", video="https://your-video-url.mp4", width=1920, height=1080, thumb=open("custom_thumb.jpg", "rb") )
内容的提问来源于stack exchange,提问作者Valery Kozlov
相关产品推荐
相关产品推荐

