【MP4】古い端末で再生できない動画を修正する
こんにちは、フリーランスエンジニアの太田雅昭です。
動画がiPad mini 4 シミュレータで再生できない
ある動画が、iPad mini 4 シミュレータでのSafariで再生できない問題がありました。拾い物のフリー動画でテスト用なのですが、サイト内で形式が統一されていなかったらしく、再生できるものとできないものとがありました。
確認する
今回ffmpegを使用します。Macでは以下のようにしてインストールできます。
brew install ffmpeg
続いて、ファイル情報を確認してみます。
ffprobe video.mp4
すると動画情報が表示されます。今回問題だったのは以下の部分でした。
Video: h264 (High) (avc1 / 0x31637661)
ChatGPT大先生によると、以下のようです。なおこの時はMP4Boxでの結果を使っているため、ffmpegとは若干形式が違います。
AVC/H.264 プロファイルとレベル
再生不可能ファイル:Profile High @ Level 4.1
再生可能ファイル:Profile Main @ Level 4.2
影響: Highプロファイルは一部のデバイスでサポートされていない場合があるため、Mainプロファイルの方が互換性が高い場合があります。
よくわかりませんが、MP4にはプロファイルというものがあり、それが互換性に影響しているようです。
修正する
ChatGPT大先生の言に従って、HighプロファイルをMainプロファイルに変更します。以下のコードで可能です。
ffmpeg -i video.mp4 -c:v libx264 -profile:v main -level 4.2 -preset fast -crf 23 new_video.mp4
わけわからないですが、とにかく確認してみます。先ほどと同様にffprobeを実行します。
Video: h264 (Main) (avc1 / 0x31637661)
無事Mainプロファイルに変更できました。iPad mini 4シミュレータのSafariでも再生が確認できました。