1

これは私の最初の投稿です:)私はレールを始めたばかりで、c/c ++のバックグラウンドは少しありますが、大したことはありません。

私はffmpegで遊んでいて、レールを使って小さな足場を作ったり、少なくとも試したりしました。したがって、基本的には2つのビデオファイルをアップロードし、ffmpegでそれらをマージして出力を吐き出します。Ruby 1.9.2 と Rails 3.2.11 を実行しています。brewでffmpegをインストールしました。segment.rb で、セグメント名、source_video、および the_other_video を作成し、これも行いました

def append_to_video(the_other_video, output_file)
    system "ffmpeg -i concat: \"#{the_other_video.source_video.path} | #{self.source_video.path}\" -c copy #{output_file}"
end

動画をアップロードして同じ動画をダウンロードすることはできますが、それだけです。FFMPEG はありません。

ffmpeg をセグメント内のペーパークリップで動作させるにはどうすればよいですか? お時間を割いていただき、誠にありがとうございました。

4

3 に答える 3

0

返信ありがとうございます:)エラーメッセージはありません。segment.rbファイルにffmpegコマンドがあります。それが正しい場所かどうかさえわかりません。私が持っているsegment.rb

class Segment < ActiveRecord::Base
  attr_accessible :name, :source_video, :the_other_video
  has_attached_file :source_video
  has_attached_file :the_other_video
end

def append_to_video(the_other_video, output_file)
    system "ffmpeg -i concat: \"#{the_other_video.source_video.path} | #{self.source_video.path}\" -c copy #{output_file}"
 end

_form.html.erb の場合

<%= form_for(@segment) do |f| %>
  <% if @segment.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@segment.errors.count, "error") %> prohibited this segment from being saved:</h2>

  <ul>
  <% @segment.errors.full_messages.each do |msg| %>
    <li><%= msg %></li>
  <% end %>
  </ul>
</div>
 <% end %>

<div class="field">
  <%= f.label :name %><br />
  <%= f.text_field :name %>
</div>

 <div class="field">
  <%= f.label :source_video %><br />
  <%= f.file_field :source_video %>
</div>

 <div class="field">
  <%= f.label :the_other_video %><br />
  <%= f.file_field :the_other_video %>
 </div>

 <div class="actions">
  <%= f.submit %>
  </div>
 <% end %>

show.html.erb の場合

<p id="notice"><%= notice %></p>

<p>
  <b>Name:</b>
    <%= @segment.name %>
</p>

<p>
   <b>Source Video:</b>
  <%= link_to 'Download Source Video', @segment.source_video.url %>
</p>

<p>
<b>Output:</b>
  <%= link_to 'Download Output', @segment.the_other_video.url %>
</p>

<%= link_to 'Edit', edit_segment_path(@segment) %> |
<%= link_to 'Back', segments_path %>

これは私のschema.rbです

ActiveRecord::Schema.define(:version => 20130801040708) do

create_table "segments", :force => true do |t|
  t.string   "name"
  t.datetime "created_at",                   :null => false
  t.datetime "updated_at",                   :null => false
  t.string   "source_video_file_name"
  t.string   "source_video_content_type"
  t.integer  "source_video_file_size"
  t.datetime "source_video_updated_at"
  t.string   "the_other_video_file_name"
  t.string   "the_other_video_content_type"
  t.integer  "the_other_video_file_size"
  t.datetime "the_other_video_updated_at"
end

end

ビデオをアップロードし、[セグメントの作成] を押すと、2 つのクリップを結合したいのですが、ffmpeg コマンドを実行する場所がわかりません。再度、感謝します!

于 2013-08-01T19:11:33.357 に答える