webm をサーバーに置いてそれに対するリンクを貼ると、パソコンの firefox では閲覧できますが iPad の chrome でも safari でも閲覧できません。
ffmpeg を使って webm を mp4 に変換しようと思ったのですが、長時間の webm だととても時間がかかります。
そこで、ローカルのコンピュータではなくて NAS 上で実行させることにしました。
youtube でダウンロードした長時間の webm を mp4 に変換する場合、例えば 9 時間の環境動画を変換すると以下のような条件でも 3 倍速だと 3 時間かかります。
ffmpeg -i goodnight.webm -vf "scale=960:-1" -c:v libx264 -crf 23 -preset ultrafast -c:a copy output.mp4こんなことはローカルのプログラムでは無理です。
上のようなプログラムを NAS で実行するには ffmpeg の古いバージョンでは無理で、ffmpeg 7 を新たにインストールしました。
NAS に ssh ログインして確認します。
find / -name ffmpeg 2>/dev/null
/usr/bin/ffmpeg/usr/syno/etc/packages/ffmpeg/volume1/@appstore/ffmpeg7/share/ffmpeg/volume1/@appstore/ffmpeg7/bin/ffmpeg/volume1/@appdata/ffmpeg/volume1/@apphome/ffmpeg/volume1/@appshare/ffmpeg/volume1/@appconf/ffmpeg/volume1/@tmp/synopkg/lfs/image/AVAIL/SYNO/ffmpeg複数の ffmpeg があります。デフォルトを ffmpeg 7 にします。
.profile を作成します。
nano ~/.profile
# User profile for saitou# Add ffmpeg7 from Synology Appstore to PATHexport PATH=/volume1/@appstore/ffmpeg7/bin:$PATH設定を反映。
source ~/.bashrc確認します。
ffmpeg -i
ffmpeg version 7.0.2-5 Copyright (c) 2000-2024 the FFmpeg developers built with gcc 8.5.0 (GCC)cron で ffmpeg を実行する際には .profle は必要ないのですが、コマンドラインから実行する場合には必要です。
sudo -i で昇格して crontab を編集します。
nano /etc/crontabで開き、以下のように設定します。
MAILTO=""PATH=/volume1/@appstore/ffmpeg7/bin:/sbin:/bin#minute hour mday month wday who command以下のようなシェルスクリプトを作成します。
ファイルのパスは絶対パスにします。
ffmpeg -i \/volume1/moheno_jstree/jstree/data/youtube/goodnight.webm \-vf "scale=960:-1" -c:v libx264 -crf 23 -preset ultrafast -c:a copy \/volume1/moheno_jstree/jstree/data/youtube/output.mp4このシェルスクリプトをタイムスケジューラで動かせばいいと思います。
-preset ultrafast とするとファイルサイズが巨大になります。私の場合は、9GB が 11 GB になってしまいました。
なので、ここは -preset medium とした方がいいと思います。