質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
アップロード

アップロードは特定のファイルをウェブサーバに送るプロセスのことを指します。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

FFmpeg

FFmpegは、動画と音声を交換できるフリーソフトウェアです。UNIX系OSから派生した、MS-DOSから操作するコマンドラインツールです。libavcodecやlibavformat、libswscale、libavfilterなどを含みます。ライセンスは、コンパイルの際のオプションによりLGPLもしくはGPLに決定されます。対応コーデックや使用できるオプションが多く、幅広く利用されています。

Q&A

0回答

1552閲覧

【carrierwave+ffmpeg】動画はアップロードできましたが音が出ません

退会済みユーザー

退会済みユーザー

総合スコア0

アップロード

アップロードは特定のファイルをウェブサーバに送るプロセスのことを指します。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

FFmpeg

FFmpegは、動画と音声を交換できるフリーソフトウェアです。UNIX系OSから派生した、MS-DOSから操作するコマンドラインツールです。libavcodecやlibavformat、libswscale、libavfilterなどを含みます。ライセンスは、コンパイルの際のオプションによりLGPLもしくはGPLに決定されます。対応コーデックや使用できるオプションが多く、幅広く利用されています。

0グッド

0クリップ

投稿2020/04/10 14:25

前提・実現したいこと

画像投稿アプリに動画投稿機能を追加したいと思いました。
その際、以下の記事を参考に実装しました。なお記事では1からアップローダーを作りますが、
すでに画像のアップローダーがあるのでそのアップローダーに機能を追加するような感じです。
→で、動画は投稿できたのですが音が出ませんで、恐縮ですがお力添えいただけたら幸いです。

https://dev.classmethod.jp/articles/ruby-on-rails-carrierwave-ffmpeg/

※webでそのまま再生したかったのでmp4だけdef extension_whitelistに追加しました。

#発生している問題・エラーメッセージ
動画を投稿し、再生することもできたのですが、音が出ません。添付の画像のような感じで、
デスクトップで再生すると音も出ますが、アップするとスピーカーが灰色になり、出ません。
イメージ説明

ビューかアップローダーのコードのせいという印象ですが、お力添えいただけたら幸甚です。

Rails

1require 'streamio-ffmpeg' 2 3class ImageUploader < CarrierWave::Uploader::Base 4 include CarrierWave::MiniMagick 5 process resize_to_fit: [230, 183] 6 7 storage :file 8 9 def store_dir 10 "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 11 end 12 13 version :thumb do 14 process resize_to_fit: [230, 183] 15 end 16 version :screenshot do 17 process :screenshot 18 def full_filename (for_file = model.logo.file) 19 "screenshot.jpg" 20 end 21 end 22 23 def screenshot 24 tmpfile = File.join(File.dirname(current_path), "tmpfile") 25 26 File.rename(current_path, tmpfile) 27 28 movie = FFMPEG::Movie.new(tmpfile) 29 movie.screenshot(current_path + ".jpg", {resolution: '230x183' }, preserve_aspect_ratio: :width) 30 File.rename(current_path + ".jpg", current_path) 31 32 File.delete(tmpfile) 33 end 34 35 def extension_whitelist 36 %w(jpg jpeg gif png mp4) 37 end 38end 39

Rails

1<h1>記事を読む</h1> 2<p><%= notice %></p> 3<p id="error_explanation"></p> 4<% if @stroll[:image] == nil %> 5 <%= image_tag"03summer_ver8-l.jpg", width:"230", height:"183" %> 6<% elsif @stroll.image.file.content_type.include?('video/') %> 7 <%= link_to @stroll.image_url.to_s do %> 8 <%= image_tag(@stroll.image_url(:screenshot).to_s, id: "image", :alt => "screenshot") %> 9 <% end %> 10<% else %> 11 <%= image_tag(@stroll.image.url) if @stroll.image && @stroll.image.url %> 12<% end %> 13<p>投稿者 <%= @stroll.user.name %>さん</p> 14<p>『<%= @stroll.title %>』</p> 15<p>記事: <%= @stroll.content %></p> 16<p>タグ: <%= @stroll.tag %></p> 17<p>コメント: </p> 18<div id="comments_area"> 19 <%= render partial: 'comments/index', locals: { comments: @comments, stroll: @stroll } %> 20</div> 21<% if user_signed_in? && @stroll.user_id != current_user.id %> 22 <%= render partial: 'comments/form', locals: { comment: @comment, stroll: @stroll } %> 23<% end %> 24<% if current_user %> 25 <% unless @stroll.user_id == current_user.id %> 26 <% if @favorite.present? %> 27 <%= link_to 'いいね!を取り消す', favorite_path(id: @favorite.id), method: :delete, class: 'btn btn-info' %> 28 <% else %> 29 <%= link_to 'いいね!', favorites_path(stroll_id: @stroll.id), method: :post, class: 'btn btn-warning' %> 30 <% end %> 31 <% end %> 32<% end %> 33&emsp; 34<%= link_to "一覧へ戻る", strolls_path %>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問