ここ一年くらいのことだと思うのですが、このブログに動画ファイル(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
」のエラーが出ているところが気になります。