Вообще у меня эта функция прописана в загрузчике Carrierwave Video_uploader.rb таким образом:
class VideoUploader < CarrierWave::Uploader::Base
include CarrierWave::Video
version :small do
process :encode
def encode
movie ||= FFMPEG::Movie.new(@file.path)
case
when movie.width > 639
system("/usr/local/bin/ffmpeg -i #{@file.path} -s 640x360 encode.mp4")
puts $?.exitstatus
# encode_video(:mp4, :custom => %w(-s 640x360 -g 25))
# def full_filename (for_file = model.videocar.file)
# "#{secure_token}-360.mp4"
# end
else
end
end
end
И соответственно puts $?.exitstatus никак не отображается.
Мне нужно запустить команду FFMPEG, чтобы была возможность конвертировать видео в m3u8.
Связка Streameo ffmpeg и Carrierwave video - это сделать не позволяют по умолчанию, а как поправить не понимаю.
Конвертация в mp4 проходит нормально и без системной команды ffmpeg, но мне нужен m3u8.
При условии что ffmpeg присутствует и верно заданы параметры в ключах, команда должна выполниться. После system можно проверить код выхода процесса при помощи $?.exitstatus
Советую заняться отладкой кода.
Установил gem https://rubygems.org/gems/ffmpeg
Исправил строчку на system("ffmpeg -i #{@file.path} -s 640x360 encode.mp4")
и заработало. Правда в корень файл кладет.