繁体   English   中英

使用javascript捕获视频和音频

[英]Capture video and audio using javascript

我试图从网络浏览器捕获视频和音频并将其上传到服务器。 事情是我不想在这里使用闪光灯。

所以我使用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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM