在heroku上使用paperclip上传的视频显示没有屏幕,只有声音

时间:2016-04-20 11:52:34

标签: ruby-on-rails heroku ffmpeg paperclip

我正在将视频上传到Heroku服务器上的Ruby on Rails应用程序。在本地它工作正常,但在Heroku服务器上没有显示屏幕,只有声音。

模特:

<!doctype html>
<html>
  <head>
    <title>Socket.IO chat</title>
    <style>
      * { margin: 0; padding: 0; box-sizing: border-box; }
      body { font: 13px Helvetica, Arial; }
      form { background: #000; padding: 3px; position: fixed; bottom: 0; width: 100%; }
      form input { border: 0; padding: 10px; width: 90%; margin-right: .5%; }
      form button { width: 9%; background: rgb(130, 224, 255); border: none; padding: 10px; }
      #messages { list-style-type: none; margin: 0; padding: 0; }
      #messages li { padding: 5px 10px; }
      #messages li:nth-child(odd) { background: #eee; }
    </style>
    <script src="/socket.io/socket.io.js"></script>
    <script src="http://code.jquery.com/jquery-1.11.1.js"></script>
    <script>
      var socket = io.connect();
      $(document).ready(function() {
          $('#form').submit(function (e) {
              socket.emit('chat message', $('#m').val());
              $('#m').val('');
              e.preventDefault();
              return false;

          });
      });
      socket.on('chat message', function(msg){
          $('#messages').append($('<li>').text(msg));
      });
    </script>
  </head>
  <body>
    <ul id="messages"></ul>
    <form id="form" action="#">
      <input id="m" autocomplete="off" /><button>Send</button>
    </form>
  </body>
</html>

以及显示视频的视图:

class Video < ActiveRecord::Base
  validates :user_id, :title, presence: true

  has_attached_file :file, :styles => {
    :poster => { :geometry => "640x480", :format => 'jpg' },
    :large => { :geometry => "640x480", :format => 'mp4',  }
  }, :use_timestamp => false, :processors => [:transcoder]

  validates_attachment_content_type :file, content_type: /\Avideo\/.*\Z/

  belongs_to :user
end

除了Heroku上的ruby buildpack之外,我还在使用buildpack <video width="640" height="480" controls> <source src="<%= @video.file.url(:large) %>" type="video/mp4"> Your browser does not support the video tag. </video>

我使用https://github.com/shunjikonishi/heroku-buildpack-ffmpeg。我也试过以下宝石:

gem 'paperclip-av-transcoder'

但结果相同。

我开始认为它与Heroku上使用的代码转换器有关。如果您下载文件,视频在视频播放器中播放正常。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

好吧,我尝试了一些不同的东西并修复它。我没有使用buildpack https://github.com/shunjikonishi/heroku-buildpack-ffmpeg,而是将其更改为https://github.com/jonathanong/heroku-buildpack-ffmpeg-latest.git。现在它有效。