QuickTime系再生ソフトでカクカクになる動画を修復する。
主題
インターネットからダウンロードした動画(mp4)で、QuickTime系のソフトで再生すると、カクカクして見るに堪えないものを、修復する方法について述べる。
背景
動画(mp4)をインターネットからダウンロードすると、拡張子がQuickTime互換のmp4であるにもかかわらず、再生時に、動きがカクカクして見るに堪えないケースに出くわすことがある。
これは、QuickTime系のソフトで再生した時のみ発生し、VLCやMPVなどでは発生しない。したがって、再生ソフトの変更も対策の1つではある。しかし、その場合、mp4にも関わらずQuicklookによる動画プレビューができなくなる。
閑話休題、カクカクした動画の治し方を検索すると、インターレース解除とか、VLCのストリーミングオプションとかが出てくるが、これらは多分間違いだと考える。これらが動画を修復できる理由は、再エンコードするからである。
前置きが長くなったが、本稿では、再エンコードなしで、画質を損なわずにカクカクした動画を修復する方法を紹介する。
手順
以下に手順を述べる。
-
MP4Box(Git版)の導入
動画の修復には、MP4Boxを用いる。ただし動画のFPSを維持するため、リリースバージョンの1.0.1ではなく、Git版を導入する。git clone https://github.com/gpac/gpac.git cd gpac ./configure --static-bin make sudo install -s bin/gcc/MP4Box /usr/local/bin
-
動画の情報取得
以下を実行する。MP4Box -info Bad_Movie.mp4
以下の出力(例)が得られる。この作業の目的は、映像と音声のtrack IDを確認することにある。
AVCC: invalid syntax for REXT profile, patching. # Movie Info - 3 tracks - TimeScale 1000 Duration 00:25:03.167 Fragmented: no Progressive (moov before mdat) Major Brand isom - version 512 - compatible brands: isom iso2 avc1 mp41 Created: UNKNOWN DATE Chapters: Chapter #1 - 00:00:00.052 - "" iTunes Info: tool: Lavf58.29.100 1 UDTA types: meta (1) # Track 1 Info - ID 1 - TimeScale 11988 Media Duration 00:25:03.103 Track has 1 edits: track duration is 00:25:03.037 Media Info: Language "Undetermined (und)" - Type "vide:avc1" - 45048 samples Visual Sample Entry Info: width=1280 height=720 (depth=24 bits) Visual Track layout: x=0 y=0 width=1280 height=720 AVC/H264 Video - Visual Size 1280 x 720 AVC Info: 1 SPS - 1 PPS - Profile High @ Level 3.1 NAL Unit length bits: 32 Pixel Aspect Ratio 8001:8000 - Indicated track size 1280 x 720 Chroma format YUV 4:2:0 - Luma bit depth 8 - chroma bit depth 8 SPS#1 hash: 519B33DA8F2EB14AB495D44A9BA4EFBE378856F3 PPS#1 hash: 19E5FD9C54250B4972A947FCF005D1CDD9782F40 RFC6381 Codec Parameters: avc1.64081F Average GOP length: 210 samples Max sample duration: 400 / 11988 # Track 2 Info - ID 2 - TimeScale 44100 Media Duration 00:25:03.166 Track has 1 edits: track duration is 00:25:03.114 Media Info: Language "Undetermined (und)" - Type "soun:mp4a" - 32368 samples MPEG-4 Audio AAC LC (AOT=2 backward compatible) (HE-AAC v1) - 2 Channel(s) - SampleRate 22050 - SBR: SampleRate 44100 Type MPEG-4 Audio SBR RFC6381 Codec Parameters: mp4a.40.2 Alternate Group ID 1 All samples are sync Max sample duration: 2048 / 44100 # Track 3 Info - ID 3 - TimeScale 1000 Media Duration 00:25:03.167 Track has 1 edits: track duration is 00:25:03.167 Track is disabled Media Info: Language "Undetermined (und)" - Type "text:text" - 1 samples Unknown Text Stream Size 0 x 0 - Translation X=0 Y=0 - Layer 0 RFC6381 Codec Parameters: text All samples are sync Max sample duration: 1503167 / 1000
-
動画のDemux
前項の情報を元に、動画を映像と音声に分離する。映像
MP4Box -raw 1 Bad_Movie.mp4
出力ファイル名(例):Bad_Movie_track1.264
音声
MP4Box -raw 2 Bad_Movie.mp4
出力ファイル名(例):Bad_Movie_track2.aac
-
動画のMux
前項で分離した映像と音声を合体させるMP4Box -add Bad_Movie_track1.264 \ -add Bad_Movie_track2.aac \ -new Fixed_Movie.mp4
以上の通り、MP4Boxを使って、動画をdemuxし、再度muxすることで、再エンコードすることなく、カクカクした動画を修復できる。
以上。
この投稿へのトラックバック
トラックバックはありません。
- トラックバック URL
この投稿へのコメント