YouTube の推奨するショート動画 9:16 を ffmpeg で作成する

「縦長で60秒以内」だけで、アップロードして公開できますが、YouTube の推奨する「アスペクト比 9:16」で見やすい画面で公開したいですよね。



ffmpeg で「動画ファイルのアスペクト比の変更」をやってみます。

動画に写ってる映像のアスペクト比はそのままで保持します。

「余白の追加 (pad)」と「切り抜き (crop) 」することで動画ファイルのアスペクト比を 9:16 にする、という話です。

少しやってみたので書いてみます。

以下は、参考になるエントリーです。

👉 Resizing videos with ffmpeg/avconv to fit into static sized player - Super User hatena-bookmark
👉 video - FFmpeg - scale and pad - Super User hatena-bookmark
👉 リサイズする scale | ニコラボ hatena-bookmark

 

🎞️ 考えられる基本パターン

出来上がりのアスペクト比は、9:16 です。

元動画が縦長であれば、

以下のどちらか。

横長であれば、

以下のどちらか。

というかんじで、

「余白の追加 (pad)」や「切り抜き (crop) 」

をします。

 

🎞️ ffmpeg の video_filter を使う

分かりやすくするために、「縦長」、「横長」といいましたが、実際は、元動画のアスペクト比が「9:16」を超えるか超えないか、が大事になります。

元動画アスペクト比が 9:16 より縦長の場合


ffmpeg -i input -vf "pad=ih*9/16:ih:-1:-1" output


ffmpeg -i input -vf "crop=iw:iw/(9/16)" output

元動画アスペクト比が 9:16 より横長の場合


ffmpeg -i input -vf "pad=iw:iw/(9/16):-1:-1" output


ffmpeg -i input -vf "crop=ih*9/16:ih" output

pad / crop 共に、中心に合わせています。

 

🎞️ もう少し便利に

元画像のアスペクト比は ffmpeg は認識できるので、そこを判別させます。

pad するか、crop するかは、動画内容の目視判断で。


ffmpeg \
  -i input \
  -vf "pad='if(lt(iw/ih,9/16),ih*9/16,iw)':'if(lt(iw/ih,9/16),ih,iw/(9/16))':-1:-1" \
  output


ffmpeg \
  -i input \
  -vf "crop='if(lt(iw/ih,9/16),iw,ih*9/16)':'if(lt(iw/ih,9/16),iw/(9/16),ih)'" \
  output

もし、画像が大きすぎる場合は,",scale=720:1280" など追加して、アスペクト比を保持しながら縮小します。

 

🎞️ まとめ

最初のリンクにあるコードでも意図する 9:16 動画 は作成できたのですが、気持ちが悪いので基本的なとこだけ調べてみました。

video filter を以下の形にまとめておけば、出来上がりの width x height を考慮したスクリプトが自在に書けそうです。


-vf "pad='max(iw,ih*(720/1280))':ow/(720/1280):-1:-1,scale=720:1280"


-vf "crop='min(iw,ih*(720/1280))':ow/(720/1280),scale=720:1280"

今後も、公式マニュアルを見ながら、あれこれやってみたいと思います。

👉 pad - Video Filters - FFmpeg Filters Documentation hatena-bookmark
👉 crop - Video Filters - FFmpeg Filters Documentation hatena-bookmark
👉 scale - Video Filters - FFmpeg Filters Documentation hatena-bookmark
👉 Expression Evaluation - FFmpeg Utilities Documentation hatena-bookmark



👉 YouTubeに縦長動画をどうアップするべきか? hatena-bookmark


Google Fit アプリの 体重グラフ Android版 と iPhone版の表示の違い

Google Fit のグラフ表示。

体重だけではないですが、なんか見づらくありませんか。

新年そうそう、体重の増減を確認します。

Android / iPhone アプリでグラフを見ます。

それぞれの OSで、表示されるグラフは、


- トップ画面

- 週

- 月

- 3か月

- 年

と、5種類あります。

同じデータでも、グラフの山の計算方法や、表示される期間が違います。

以下、2023年元旦の時点で表示されるグラフです。

 

■ Android

トップ画面



3か月


 

■ iPhone

トップ画面



3か月


 

■ まとめ

2023年、元旦の時点では、

iPhone 版の 3か月 表示が一番体重の増減が分かりやすいように思います。

表示期間の範囲設定が少し微妙に思えます。

しかし、まあ、正月は太るので嫌ですね。

👉 Google Fit hatena-bookmark


0120-578-225 からのSMS (ショートメッセージ )

こんな SMS (ショートメッセージ) きました。

ネットで検索してみると以下。

現在この電話番号(0120-578-225)を調べている方が急増しています。

👉 フリーダイヤル0120578225の詳細情報 | みんなの電話帳 hatena-bookmark

詐欺なのか、誤送信なのか、

厚生労働省からなのか、詐欺業者からなのか、

分かりません。

送信元番号に電話してみました。


使われていないです。

書かれているリンク https://goo.gl/LHCS9W のリダイレクト後のリンク先は、Android ヘルプページ。

Android スマートフォンの電話番号の確認手続きを行う - Android ヘルプ
👉 https://support.google.com/android/answer/7521240?visit_id=699072665013167797-3299884897&p=verify_number&rd=1

となっています。なんですかね、このパラメータ。

電話番号 0120-578-225 を厚生労働省が実際に利用している(た)として、

メッセージ自体心当たりが無いので、パターンとしては


1. 詐欺業者からの詐欺メッセージ

2. 詐欺業者からの誤送信

3. 詐欺業者からの電話番号確認

4. 厚生労働省からの詐欺メッセージ

5. 厚生労働省からの電話番号確認

6. 厚生労働省からの誤送信

が考えられます。

どうしてます?

どうしたらいいの?

👉 SMSで送信元の電話番号を偽装したメッセージを送る - Akaki I/O hatena-bookmark