最近、動画ファイル(mp4)のアップロードができない|とりあえずの解決策

 ここ一年くらいのことだと思うのですが、このブログに動画ファイル(mp4)をアップロードしようとするとエラーが出て表示されないことに気づきました。

 表示されるエラーメッセージは、「サポートされたファイル形式およびMIMEタイプの動画が見つかりませんでした」というもの。

 最初は、表示の問題かと思ったのですが、違いました。Wordpressのメディアライブラリで確認すると、動画が認識されていません。これでは、表示できないはずです。

 MIMEタイプのエラーは、ネットを閲覧しているときにたまに見かけるのですが、まさか、自分のサイトで起きるとは考えもしなかった。実際、これまで、問題なくmp4ファイルをアップしてきたので、アップロードさえできない状況に戸惑うばかりです。

 この不具合は、Wordpressのセキュリティ強化が影響しているようですが、詳しいことは分かりません。

 エラーメッセージにあるMIMEタイプをいくら調べても、解決策は見つからない。

取り急ぎ、解決策を考える

 このトラブルは、mp4で発生しているようです。そこで、mp4をmovに変換。すると、何の問題もなく、アップロードできました。表示も正常です。

 結局、最も簡単な解決策は、mp4 ⇒ mov変換することでした。

 もう一つの解決策を考えます。

 この方法は、PowerDirectorを使っていて気づいたのですが、mp4形式で出力するにはコーデックスの違いによりいくつか種類があること。PowerDirectorでは、mp4形式で出力するのに「H.264 AVC」、「H.265 HEVC」、「XAVC S」の三つの方式を選択できます。 

H.264 AVC: プロジェクトをH.264 AVC コーデックスで出力(.M2TS, .MP4, MKV)
H.265 HEVC : プロジェクトをH.265 HEVC コーデックスで出力(.M2TS, .MP4, MKV)
XAVC S: プロジェクトをXAVCS コーデックスで出力(.MP4)

 「H.265 HEVC」で出力したファイルは、アップロードに失敗しましたが、「H.264 AVC」と「XAVC S」で出力したファイルは、これまで通り問題なくアップロードできました。表示も正常です。つまり、「H.264 AVC」か「XAVC S」を使って再エンコードすることでこの問題は解決しそうです。いつものmp4でアップできるので、扱いやすい。

映像用コーデックを確認する

 アップロードに失敗したmp4ファイルはどんなコーデックが使われているのか確認します。

 コーデックの確認方法はネット上で見かけないのですが、簡単にできます。

 今回は、フリーソフト「LossLessCut」(最新版Ver.3.61.1.0)を使います(この版は優れものです)。

 「LossLessCut」に動画ファイルをドロップして、メニューバーのすぐ下にある「トラック(2/2)」をクリックしてトラックの編集画面を開きます。

 映像と音声の二つのトラックが表示されています。右の「i」ボタンをクリックすると詳細情報が表示されます。 

このファイルはアップロードに失敗したのですが、コーデックはH.265になっています。どうやら、H.265でコーデックしたmp4はWordpressにアップロードできないようです。

もう一つ気になることがあります。この動画ファイルが壊れているのではないか、という疑念です。正常に再生されるし、LossLessCutにも読み込み可能です。しかし、untruncで調べると「Skipping moov atom」のエラーが出ているところが気になります。