From 99221af855000fb620f91b91aaf62f022d5ef105 Mon Sep 17 00:00:00 2001 From: evazion Date: Tue, 1 Mar 2022 00:16:55 -0600 Subject: [PATCH] ugoiras: fix regression in 7031fd13d. Fix `Cannot write log file 'ffmpeg2pass-0.log' for pass-1 encoding: Permission denied` error when uploading ugoira files. Caused by the fact that 2-pass encoding tries to write a log file in the current directory by default, which fails in production because the default working directory in the Docker image is /danbooru, which is read-only. --- app/logical/media_file/ugoira.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/logical/media_file/ugoira.rb b/app/logical/media_file/ugoira.rb index 56eb9d2ae..93fac6c06 100644 --- a/app/logical/media_file/ugoira.rb +++ b/app/logical/media_file/ugoira.rb @@ -85,10 +85,10 @@ class MediaFile::Ugoira < MediaFile end ext = zipfile.first.name.match(/\.(\w{,4})$/)[1] - ffmpeg_out, status = Open3.capture2e("ffmpeg -i #{tmpdir}/images/%06d.#{ext} -codec:v libvpx-vp9 -crf 12 -b:v 0 -an -threads 8 -tile-columns 2 -tile-rows 1 -row-mt 1 -pass 1 -f null /dev/null") + ffmpeg_out, status = Open3.capture2e("ffmpeg -i #{tmpdir}/images/%06d.#{ext} -codec:v libvpx-vp9 -crf 12 -b:v 0 -an -threads 8 -tile-columns 2 -tile-rows 1 -row-mt 1 -pass 1 -passlogfile #{tmpdir}/ffmpeg2pass -f null /dev/null") raise Error, "ffmpeg failed: #{ffmpeg_out}" unless status.success? - ffmpeg_out, status = Open3.capture2e("ffmpeg -i #{tmpdir}/images/%06d.#{ext} -codec:v libvpx-vp9 -crf 12 -b:v 0 -an -threads 8 -tile-columns 2 -tile-rows 1 -row-mt 1 -pass 2 #{tmpdir}/tmp.webm") + ffmpeg_out, status = Open3.capture2e("ffmpeg -i #{tmpdir}/images/%06d.#{ext} -codec:v libvpx-vp9 -crf 12 -b:v 0 -an -threads 8 -tile-columns 2 -tile-rows 1 -row-mt 1 -pass 2 -passlogfile #{tmpdir}/ffmpeg2pass #{tmpdir}/tmp.webm") raise Error, "ffmpeg failed: #{ffmpeg_out}" unless status.success? mkvmerge_out, status = Open3.capture2e("mkvmerge -o #{output_file.path} --webm --timecodes 0:#{tmpdir}/timecodes.tc #{tmpdir}/tmp.webm")