如何使用JDA向Discord发送可直接播放的视频?
解决JDA上传Discord视频不可播放的问题
检查视频格式与编码兼容性
Discord仅支持特定编码的视频,首选MP4容器+H.264视频编码+AAC音频编码。如果你的视频是MKV、AVI或其他格式,或者编码不符合要求,Discord无法解析播放。可以用ffmpeg转码,命令示例:ffmpeg -i 原视频文件.mp4 -c:v libx264 -c:a aac -strict -2 转码后视频.mp4控制文件大小
Discord普通频道单文件上传上限为8MB,Nitro用户为50MB。超过上限的视频会被Discord强制压缩,可能破坏编码导致无法播放。确保文件在对应限制内。上传时显式指定文件名(带后缀)
无论用本地文件还是InputStream上传,必须指定带正确后缀的文件名,让Discord识别文件类型。示例代码:- 本地文件上传:
channel.sendFile(new File("本地视频路径.mp4"), "展示文件名.mp4").queue(); - InputStream上传:
InputStream stream = new FileInputStream("本地视频路径.mp4"); channel.sendFile(stream, "展示文件名.mp4").queue();
注意第二个参数的文件名必须包含
.mp4后缀,否则Discord可能将文件识别为普通附件而非视频。- 本地文件上传:
更新JDA到最新稳定版
旧版JDA可能存在文件上传的兼容性问题,确保使用最新的稳定版本(如5.0.x系列),可以通过Maven或Gradle依赖更新。先手动验证视频
把视频手动上传到Discord频道,如果手动也无法播放,说明是视频本身的问题,和JDA无关;如果手动能播放,再排查上述代码和配置问题。
内容的提问来源于stack exchange,提问作者LittleBigOwl
相关产品推荐
相关产品推荐

