You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:R video包的video函数无法加载本地MP4文件

解决R Shiny video包加载本地MP4文件的问题

核心原因

Shiny不会自动将工作目录中的文件作为可访问的静态资源,而video::video()函数需要通过HTTP请求访问视频文件,直接使用本地路径无法被Shiny服务正确解析。

方案1:使用Shiny默认的www目录(推荐)

  1. 在你的Shiny app工作目录下创建名为www的文件夹,将本地MP4文件(比如oceans.mp4)放入该文件夹。
  2. 修改代码,直接使用文件名作为路径:
library(shiny)
library(video)

ui <- fluidPage(
  videoOutput("ocean")
)

server <- function(input, output, session) {
  output$ocean <- renderVideo(video("oceans.mp4"))
}

shinyApp(ui, server)

Shiny会自动将www目录下的文件映射为根路径的静态资源,此时video()函数能正确加载本地视频。

方案2:手动注册资源路径(自定义文件夹)

如果不想使用默认的www目录,可以用addResourcePath()手动指定资源目录:

  1. 假设你的视频放在工作目录下的local_videos文件夹中,先注册该路径:
library(shiny)
library(video)

# 注册资源路径:将"local_videos"映射到实际文件夹路径
addResourcePath("local_videos", "./local_videos")

ui <- fluidPage(
  videoOutput("ocean")
)

server <- function(input, output, session) {
  # 使用注册的路径访问视频
  output$ocean <- renderVideo(video("local_videos/oceans.mp4"))
}

shinyApp(ui, server)

这种方法适合需要将视频放在非默认位置的场景。

注意事项

  • 确保视频文件采用Shiny支持的编码格式(MP4/H.264编码兼容性最优)
  • 检查文件路径拼写是否正确,注意不同系统的路径分隔符:Windows用\\或/,Linux/macOS用/

内容的提问来源于stack exchange,提问作者user1713174

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 10:22:07