投稿形式はブラウザはMP4(H264、AAC)、モバイルアプリはMP4とMOVの動画形式をサポートしているが、今回はブラウザからの動画と画像を対象とする。

公式の説明を基にまとめる。ただし画像については仕様が変わりやすい。

動画の仕様

動画の推奨設定

  • 映像のコーデックはH.264のHighプロファイル
  • フレームレートは30fps、または60fps
  • 解像度は1280x720、720x1280、720x720のどれか
  • 映像の最小ビットレート(最大ではない)は5000kbps
  • 音声の最小ビットレート(最大ではない)は128kbps
  • 音声のコーデックはAAC-LC
  • アスペクト比は16:9、または1:1

動画の発展的な設定

  • フレームレートは60fps以下
  • 解像度は32x32から1280x1024の間
  • ファイルサイズは512MBを超えない
  • 時間は0.5秒から140秒の間
  • アスペクト比は1:3から3:1の間
  • ピクセルアスペクト比は必ず1:1
  • YUV420だけサポート
  • AAC-LCだけ、HE-AAC、HEv2-AACはサポートしない
  • 音声チャンネルはモノラルかステレオだけ、5.1チャンネルやそれ以上は不可
  • オープンGOPであること
  • プログレッシブ方式だけでインターレース方式は不可

投稿する前に確認することは時間。時間が超えていたら -ss, -t , -to で140秒以内に納める。解像度が規定を超えたら、例えば1920x1080の60fpsは投稿エラーではなくリサイズされて表示されるのでこだわりがなければそのまま投稿する。

開始5秒目から、140秒間コーデックコピー出力する。
ffmpeg -ss 5 -i input -t 140 -c copy output.mp4

アスペクト比を維持しながら長辺1280ピクセルより大きいとき長辺1280ピクセルにリサイズし小さければそのまま。
ffmpeg -i input.mp4 -vf "scale=if(gte(iw\,ih)\,min(1280\,iw)\,-2):if(lt(iw\,ih)\,min(1280\,ih)\,-2)" -c:a copy output.mp4

画像の仕様

画像全般

  • サポートフォーマットはJPG、PNG、GIF、WEBP
  • ファイルサイズは5MB以下で

アニメGIF

  • 解像度は1280x1080以下
  • 総フレーム数は350以下
  • 解像度(横x縦)xフレーム数が300万以下
  • ファイルサイズは15MB以下

2019年9月2日時点のGoogle Chrome76.0.3809.132(Official Build)(64 ビット)でアニメGIF以外で投稿し、長辺2048ピクセルまではリサイズされない。画像のリンクはブラウザから右クリックの「新しいタブから画像を開く」より、リンクの末尾に ?format=jpg&name=900×900 とあれば、jpg のところを png、webp のどれかに変えるとそのフォーマットで表示される。900×900 は長辺2048ピクセルを超えると表示され、ここも small、medium、large のどれかに変える。

https://pbs.twimg.com/media/ECf6Y-ZVUAAnxmq?format=jpg&name=large
https://pbs.twimg.com/media/ECf6Y-ZVUAAnxmq?format=png&name=large
https://pbs.twimg.com/media/ECf6Y-ZVUAAnxmq?format=webp&name=large

フォーマットは投稿フォーマットに限らずJPG(YUVJ420)、PNG(RGB24)、WEBP(YUV420)が作られる。投稿画像はPNGで5MB以下ならそのままPNGで、超えるならJPG(YUVJ444)で投稿するのが一番高画質になる。

画像については以前のPNG8の心配が不要になり、解像度も長辺2048ピクセル超えたら2048ピクセルに納まるようにアスペクト比揃えてリサイズされるのでファイルサイズが超えない限り特に気にしない。アニメGIFについてはGIFで投稿してもそのまま表示しているわけはなく動画に変換している。PNG、WEBPのアニメーション、APNG、AWEBPも調べたが、APNGは1フレームの画像に、AWEBPは投稿できない。

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)