PC版Twitterで「動画ファイルをアップロードできません。」と出るのをどうにかする

この記事は最終更新日から1年以上が経過しています。情報が古くなっている可能性があります。

Twitter にとある動画を上げようとしたら「動画ファイルをアップロードできません。詳細についてはこちらをご確認ください。」と突っ跳ねられてしまい小一時間格闘したのでメモ…
今までにも同じエラーで動画がアップロードできない事が何度かあったのですが、大体再エンコードで解決していたのでかなり手こずりました…

Sponsored Link

原因を探る

予め、動画や音声の細かな情報を調べることができる MediaInfo というソフトをインストールしておきます(インストール方法は割愛します)

インストール後、動画をエクスプローラーで右クリックして MediaInfo のところをクリックするとその動画の情報を見る事ができます。

Twitter の動画ヘルプ いわく、

とのこと。
アップロードしたい動画を MediaInfo で調べると、

  • 幅と高さ: 1920×1080
  • アスペクト(縦横)比: 16:9
  • フレームレート: 29.97fps (30000/1001fps)
  • ビットレート: 10Mbps
  • 形式: .m2ts 形式
    • ビデオカメラで撮った動画の標準形式
    • 拡張子が .mts の場合もあるけど同じもの

だったので、予め ffmpeg でインターレースを解除して MP4 に変換してからアップロードしていたのですが、何故かアップロードできません。
29.97fps(30000/1001)なのが悪いのかなーとも思い強制的に 30fps に変換してみましたが、関係はなさそうです(最大フレームレート (fps) は 40fps って書いてあるし…)

ビットレートも最大ビットレートの 25Mbps より下回っているため、ヘルプにある条件は全て満たしているはず…

結論

ビデオカメラで撮った動画の音声が 5.1ch だった

5.1ch は音の立体感を高めるために音声が L・R 以外にもいくつかあるやつです(立体的な音響になる・映画のブルーレイの音声は大体これ)

私の使っているビデオカメラは(高スペック機種でもないんですが)何故か音声が 5.1ch サラウンドで記録できるタイプで、それで MP4 にエンコードし直した後も音声が 5.1ch のままになっていました…

MediaInfo で確認してみると、確かに 6ch になっています(5.1ch は便宜上の表記で、実際は 6ch あるところ重低音は 1ch にカウントしないとかなんとかで 5.1ch になってるらしい)

どうやら音声が 5.1ch(2ch 以外)の動画は Twitter に上げられないようで、試しに ffmpeg で動画の音声を通常の 2ch(L・R から出るやつ)に変換してみたところ、正常にアップロードする事ができました…(長かった…)

ffmpeg (インストール方法) で MP4 の音声を 5.1ch から 2ch に変更する場合のコマンド例:

ffmpeg -i input.mp4 -c copy -ac 2 output.mp4

音声ビットレートも 394Kbps とかなり高めだったのでそれが原因かとも考えましたが、ビットレートそのままで音声チャンネルを 2ch にしてアップロードしてみたところすんなり通ったので、5.1ch だったのが原因とみて間違いなさそうです。

これ以外にもアップロードできない条件がいくつか存在するほか、本来は上げられないはずの 60fps の動画も長さが数秒程度なら上げられるなどの不可解な点もあります

…大体うp出来ないならちゃんとヘルプに書いとけよ…(20~30分くらい浪費した)
というかそれくらい Twitter 側で 2ch に変換しとけよ焼き鳥にすっぞ

コメント