(ロスレス変換) MOV形式をコンテナ変換する
未だに息をしているMOV形式。
iPhoneの動画撮影で使われていると知って非常に驚いた。
Androidがメインで利用しており、iPhoneで撮影することなどもなかったため、全く知らなかった。Quick Timeは死に体だし、iTMSではM4A (Appleが勝手に作った、ビデオ無しのMP4) だし、Windowsでも今でも標準で見れないし、 もう使われていないと思ってたから、信じられない思い。アンビリバボー😱。
保存型式の設定項目もなさそうなので、コンテナ変換を思考してみる。
検証環境
- iPhone SE (初代)
- iOS 14.8
- Windows10 Pro v1809
- ffmpeg v4.2.1
コンテナとサポート コーデックの仕様を確認する。
動画ファイル形式、音声ファイル形式は、 コンテナ と コーデック に分けて考えることが出来る。 (圧縮ファイルや画像ファイルでも同様に、 コンテナ と アルゴリズム に分けて考えることができる)
コンテナ は動画と音声を 多重化 (Multiplex) するのに用いられ、複数の 動画コーデック (Video Codec) と 音声コーデック (Audio Codec) をサポートしていることがある。異なる コンテナ で共通して対応している コーデック であれば、 コンテナ のみを変換することも出来る場合がある。この場合、画質・音質的損失は限りなく0に近い。
(勿論メタデータやなどの損失や、同期が取れなくなる場合もあるため、0とは言い切らない)
主要な コンテナ と、サポートしている コーデック を比較・確認する。
🎞 Video Codec
※ 独自の調査と独断と偏見による調査 (誤りがあっても責任は持てません。)
- ◎ … 対応していて、よく使われるコーデック ⇒ 対応アプリが多い
- ◯ … 対応しているコーデック
- △ … 一応対応しているが、あまり使われないコーデック ⇒ 対応アプリが少ない
コンテナ | 拡張子 | H.264 (MPEG-4 AVC) (MPEG-4 Part 10) |
H.265 (HEVC) |
VP8 | VP9 | AV1 |
---|---|---|---|---|---|---|
MOV (QuickTime file format) |
.mov | ◎ | ||||
MP4 (MPEG-4 Part 12) (ISO base media file format) (MPEG-4 Part 14) |
.mp4 | ◎ | ◯ | △ | △ | ◯ |
FLV (Flash Video) |
.flv | ◎ | ||||
Matroska | .mkv | ◯ | ◯ | ◯ | ◯ | ◯ |
WebM | .webm | ◯ | ◯ | ◯ |
※ MP4 (ISOBMFF)
では VP8/9
に対応したらしいけど。おそらく対応アプリはあまりなく、使われていない。(まぁ + Opus
で WebM
つかうよね、普通。)
※ Matroska
/ WebM
はあまり使わないので、メインどころのコーデックはあまりわからない。
🔈 Audio Codec
※ 独自の調査と独断と偏見による調査 (誤りがあっても責任は持てません。)
- ◎ … 対応していて、よく使われるコーデック ⇒ 対応アプリが多い
- ◯ … 対応しているコーデック
- △ … 一応対応しているが、あまり使われないコーデック ⇒ 対応アプリが少ない
コンテナ | 拡張子 | MP3 (MPEG-1 Audio Layer-3) |
AAC | AC-3 | Vorbis | Opus | FLAC |
---|---|---|---|---|---|---|---|
MOV (QuickTime file format) |
.mov | ◎ | ◎ | ◎ | |||
MP4 (MPEG-4 Part 12) (ISO base media file format) (MPEG-4 Part 14) |
.mp4 | △ | ◎ | ◯ | ◯ | ||
FLV (Flash Video) |
.flv | ◯ | ◎ | ||||
Matroska | .mkv | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ |
WebM | .webm | ◯ | ◎ |
※ MP4
の音声に MP3
が対応しているものの、民生機では対応しているものがあまりない。例えば PS3
/ PS4
/ PS5
や カーナビ
など、対応していないものが多い。
※ Matroska
/ WebM
はあまり使わないので、メインどころのコーデックはあまりわからない。
仕様確認結果
H.264/AVC
+ AAC
であれば、MOV
・ MP4
・ MKV
が共通的にサポートしているので、コンテナの相互変感が可能そう。
コンテナ変換
変換前
iPhone
で録画した動画ファイルの内容を ffprobe
で確認。一応念の為、720p
・ HD
・ 4K
の3種で撮影したが、いずれも MOV
+ H.264/AVC
+ AAC
といった塩梅だった。これなら、MP4
や MKV
へのコンテナ変換も行えそう。
ffprobe "input.mov"
コンテナ変換実行
動画ソース、音声ソースをそのまま、コンテナだけ変換を行う。
# MOV ⇒ MP4へ変換する場合
ffmpeg -i "input.mov" -c:v copy -c:a copy -f mp4 "output.mp4"
# MOV ⇒ MKVへ変換する場合
ffmpeg -i "input.mov" -c:v copy -c:a copy -f matroska "output.mkv"
# MP4 or MKV ⇒ MOVへ変換する場合
ffmpeg -i "input.mp4" -c:v copy -c:a copy -f mov "output.mov"
-c:v copy -c:a copy
で動画・音声の再変換を行っていないのがミソ。
変換後
変換後の MP4
を ffprobe
で確認。コーデックやビットレート、フレームレートなどが同じであることを確認。再圧縮が行われていた場合はフレーム数やビットレートが変化するはずなので、概ねコンテナ変換が行えてそう。
ffprobe "input.mp4"
(余談) そもそも論①
そもそも、MP4
自体が QuickTime file format
を元に、 MPEG-4 Part 12
、MPEG-4 Part 14
、で制定されたコンテナ、ISO base media file format
である。そのため基本構造が同じなのである。そのため、対応しているコーデックが似ている。
Windows10でも MOV
が再生できたので、最近対応した MP4
のデコーダーによる効能?と推察。(QuickTime
も iTunse
Windowsを破壊するので、入れていない & 死んでも入れたくないが再生できた。)
ffmpegでもコンテナ変換の際にのコンソールを見返すと、
mov,mp4,m4a,3gp,3g2,mj2
とあり、MP4
と MOV
が同じエンジンを使用している様に見受けられる。
こんな状態なので、MOV
が生きていても不思議では無いと思えなくもない状況と思える。
まぁとは言え MP4
がメインストリームが現状の昨今では、MOV
はやはり死に体の形式だとずっと思って入るけど。Apple製品基本的に使っていないから、余計にね。
(余談) そもそも論②
但し、そもそもMP4は視聴用には良いのだけれども、編集用には向かない。さながらJPEGの様に。実際 MP4
は編集系のツール系は少ないし。更に MOV
のほうが編集にも向いているとからしいので。MP4
に変換する理由があるのだろうか (自問)。結合1つでもロクなツールが無いので。もし編集用にコンテナ変換するなら、MKV (Matroska)
のほうが良さそうに思ったりしている。 MKVToolNix
もあるしね。もちろん使いたいツールに合わせてコンテナ変換は行えばよいかと思う。
手前味噌ですが。
必要に応じてコンテナ変換ができれば、編集時の損失を多少減らせられるのでは無いかと思う。
謝辞
-
動画形式の種類と違い(AVI・MP4・MOV・MPEG・MKV・WMV・FLV・ASF等)【コンテナ】 | AviUtlの易しい使い方
https://aviutl.info/dougakeisiki-konntena/ -
ffprobeで動画を解析する - Qiita
https://qiita.com/makotok7/items/0e7d2f941e5da8cec8d1 -
コンテナフォーマット - Wikipedia
https://ja.wikipedia.org/wiki/コンテナフォーマット -
QuickTime - Wikipedia
https://ja.wikipedia.org/wiki/QuickTime -
MPEG-4 - Wikipedia
https://ja.wikipedia.org/wiki/MPEG-4 -
MP4 - Wikipedia
https://ja.wikipedia.org/wiki/MP4 -
Flash Video
https://ja.wikipedia.org/wiki/Flash_Video -
Matroska - Wikipedia
https://ja.wikipedia.org/wiki/Matroska -
WebM - Wikipedia
https://ja.wikipedia.org/wiki/WebM -
H.264 - Wikipedia
https://ja.wikipedia.org/wiki/H.264 -
H.265 - Wikipedia
https://ja.wikipedia.org/wiki/H.265 -
AV1 - Wikipedia
https://ja.wikipedia.org/wiki/AV1 -
AAC - Wikipedia
https://ja.wikipedia.org/wiki/AAC -
ドルビーデジタル - Wikipedia
https://ja.wikipedia.org/wiki/ドルビーデジタル -
Media Data Atom Types
https://developer.apple.com/library/archive/documentation/QuickTime/QTFF/QTFFChap3/qtff3.html -
Media Data Atom Types #Video Media
https://developer.apple.com/library/archive/documentation/QuickTime/QTFF/QTFFChap3/qtff3.html#//apple_ref/doc/uid/TP40000939-CH205-74522 -
Media Data Atom Types #Sound Media
https://developer.apple.com/library/archive/documentation/QuickTime/QTFF/QTFFChap3/qtff3.html#//apple_ref/doc/uid/TP40000939-CH205-75770 -
The 'MP4' Registration Authority
https://mp4ra.org/#/codecs -
MPEG-4 File Source - Win32 apps #Media Types | Microsoft Docs
https://docs.microsoft.com/en-us/windows/win32/medfound/mpeg-4-file-source#media-types -
The 'MP4' Registration Authority
https://mp4ra.org/#/codecs -
The WebM Project | VP Codec ISO Media File Format Binding
https://www.webmproject.org/vp9/mp4/ -
QuickTime File Format
https://www.loc.gov/preservation/digital/formats/fdd/fdd000052.shtml -
PS3™ | 再生できるファイルの種類
https://manuals.playstation.net/document/jp/ps3/current/video/filetypes.html -
再生できるファイルの種類 | PlayStation®4 ユーザーズガイド
https://manuals.playstation.net/document/jp/ps4/videos/mp_format_v.html -
PS5 / PS4でビデオや音楽を再生する方法 日本
https://www.playstation.com/ja-jp/support/hardware/play-video-music-discs-usb-drives/
Discussion