javascript - 使用 JavaScript 捕获视频和音频

标签 javascript ruby-on-rails firefox ffmpeg webrtc

我正在尝试从网络浏览器捕获视频和音频并将其上传到服务器。问题是我不想在其中使用闪光灯。

所以我正在使用 HTML5 功能和一个名为 RecorderRTC 的库使其成为可能。我在后端使用 Ruby on Rails。尽管我感觉此功能仍在实现中,但我面临着挑战。

我编写了以下 JavaScript 代码:http://pastebin.com/KjwunFfD这是我的 Rails 代码:

    uuid = UUID.generate
    audio_file_name = "#{uuid}.wav" if params[:chrome]
    audio_file_name = "#{uuid}.ogg" if params[:firefox]
    video_file_name = "#{uuid}.webm"

    directory = "#{Rails.root}/public/record"
    directory = directory + "/chrome" if params[:chrome]
    directory = directory + "/firefox" if params[:firefox]

    audio_path = File.join(directory, audio_file_name)
    video_path = File.join(directory, video_file_name)
    #puts params[:audioBlob].tempfile.read
    File.open(audio_path, "wb") { |f| f.write(params[:audioBlob].tempfile.read) }           if params[:audioBlob]
    File.open(video_path, "wb") { |f| f.write(params[:videoBlob].tempfile.read) }           if params[:videoBlob]

    output = `ffmpeg -i #{video_path} -i #{audio_path} -acodec copy -vcodec copy #{directory}/#{uuid}.mkv`

    message[:video_url] = "/record/chrome/#{video_file_name}" if params[:chrome]
    message[:video_url] = "/record/firefox/#{video_file_name}" if params[:firefox]

    message[:audio_url] = "/record/chrome/#{audio_file_name}" if params[:chrome]
    message[:audio_url] = "/record/firefox/#{audio_file_name}" if params[:firefox]

    message[:audio_video_url] = "/record/chrome/#{uuid}.mkv" if params[:chrome]
    message[:audio_video_url] = "/record/firefox/#{uuid}.mkv" if params[:firefox]

我的问题是,当我尝试通过 Firefox ffmpeg 运行此代码时,出现找不到编解码器的错误。我不确定我错过了什么。有人可以帮忙吗?

最佳答案

您的 FFMpeg 似乎不支持 Firefox 客户端提供的 ogg 输入。您是否从终端运行 ffmpeg 命令且没有错误?

我认为这与rails、javascript等无关,而只与ffmpeg有关。检查这里:https://trac.ffmpeg.org/wiki/TheoraVorbisEncodingGuide

关于javascript - 使用 JavaScript 捕获视频和音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23060461/

相关文章:

javascript - 用户脚本可以从给定域中删除 cookie 吗?

css - 子 div 忽略 Firefox 中的父元素 padding-bottom 但在 chrome 上工作

javascript - jquery ajax 异步没有相应地工作

java - 是否可以使用 HTTP POST 下载文件?

javascript - 无法在 Internet Explorer 10 上加载 Google Cloud Endpoints

ruby-on-rails - 2 列表,忽略批量插入 postgresql 时的重复项

ruby-on-rails - Sass::SyntaxError:找不到或无法读取要导入的文件:bootstrap-sprockets

javascript - 如何使用nodegit获取提交的分支

javascript - 如果在js.erb中确认

firefox - 禁用带有插件或扩展名的单个 javascript 文件