Matroskaは動画、音声、字幕などのマルチメディアデータを格納するコンテナフォーマット。拡張子は.mkv(Matroska Video)や.mka(Matroska Audio)が使われる。オープンソースで開発が行われている。名称はロシアの入れ子人形マトリョーシカに由来する。
Matryoshka from Hungary (2021) by Wilfredo Rafael Rodriguez Hernandez
現在最も使われている動画データのコンテナフォーマットはMP4だろう。拡張子は.mp4や.m4v。先行して普及したので互換性が高く、様々なデバイスで再生できる。音声や字幕は一つしか格納できない。
一方、後発のMatroskaは互換性はMP4に劣るが、複数の音声や字幕を格納できるなどメリットも多い。将来の利用を考えて、動画データのコンテナフォーマットはMP4よりもMatroskaを使うことが多い。Googleが提唱しているWebMも将来性があるのだろうが、そもそもMatroskaのサブセットなので、Matroskaに比べると対応しているコーデックが少ない。
動画データのプレーヤーとしてはPC、スマホともVLCを使用している。VLCはMatroskaの再生に適している。
コンテナフォーマットの変換が必要なときはFFmpegを使っている。例えば、m4vからmkvに無劣化で変換する場合、シェルから下記のようにFFmpegを実行する。
ffmpeg -i infile.m4v -c:v copy -c:a copy outfile.mkv
FFmpegの実行例(Windows PowerShell)
変換対象のファイルが複数あるときもある。例えば、カレントディレクトリにあるすべてのm4vファイルをmkvファイルに変換したい場合、Windows PowerShellから下記のようなスクリプトを実行して、FFmpegで変換処理を行う。
Get-ChildItem -Filter *.m4v | ForEach-Object {
$InputFile = $_.FullName
$OutputFile = [System.IO.Path]::ChangeExtension($InputFile, ".mkv")
ffmpeg -i $InputFile -c:v copy -c:a copy $OutputFile
Write-Host "Converted $InputFile to $OutputFile"
}
FFmpegのスクリプトからの実行例(Windows PowerShell)
Matroska Media Container Homepage
公式サイト。
File:Matryoshka from Hungary.jpg - Wikimedia Commons
VLCメディアプレーヤー
コメント