1. 概要

ビデオファイルから重要な情報を取得する必要がある場合があります。 この情報には、長さ、ビットレート、解像度、オーディオ品質、字幕などが含まれます。 幸い、Linuxには、コマンドラインでこのすべての情報を取得したり、ビデオファイルを編集したりできる多くのツールがあります。

このチュートリアルでは、入力ビデオファイルから重要な情報を取得するために使用できるいくつかのツールについて説明します。

2. 設定

これらのメソッドをテストするには、最初に使用できるビデオファイルが必要です。

短いサンプルmp4ビデオファイルをダウンロードしてみましょう。

$ wget https://download.samplelib.com/mp4/sample-5s.mp4
...truncated...

Length: 2848208 (2.7M)
Saving to: ‘sample-5s.mp4’

...truncated....

wget コマンドを使用して、2.7MBのサイズの sample-5s.mp4、というビデオファイルをダウンロードしました。

3. MediaInfoの使用

MediaInfo は、オーディオまたはビデオファイルに関する情報を表示するための最も強力なLinuxユーティリティの1つです。

入力オーディオまたはビデオに関する技術情報とタグ情報を提供します。 これもオーディオタイプ、ビデオタイプ、字幕、チャプター数などの情報。 また、多数のオーディオおよびビデオ形式をサポートしています。

まず、MediaInfoをダウンロードしてインストールしましょう。

$ sudo apt install mediainfo

次に、それを使用してsample-5s.mp4ファイルに関する情報を取得できます。

$ mediainfo sample-5s.mp4 
General
Complete name                            : sample-5s.mp4
Format                                   : MPEG-4
Format profile                           : Base Media
Codec ID                                 : isom (isom/iso2/avc1/mp41)
File size                                : 2.72 MiB
Duration                                 : 5 s 759 ms
Overall bit rate                         : 3 957 kb/s
Writing application                      : Lavf58.44.100
...truncated...

詳細な説明については、 –full-scanオプションを使用できます。

$ mediainfo --full-scan sample-5s.mp4

オーディオまたはビデオファイルに関する特定の情報を照会することもできます。 sample-5.mp4ファイルの期間のみを表示しましょう。

$ mediainfo --Inform="Video;%Duration%" sample-5s.mp4 
5700

ここでは、 –Inform オプションを使用して、取得する情報を指定しています。 返される5700の値はミリ秒単位、つまり5.7秒です。

4. FFprobeの使用

FFprobeは、マルチメディアストリームから情報を収集し、人間が読み取れる形式または機械が読み取れる形式で出力するLinuxユーティリティです。高さ、幅、ビットレート、コーデック、ピクセル形式などの情報を収集するために使用されます。サイズなど

FFprobeをスタンドアロンプログラムとして使用することも、テキストフィルターと組み合わせて使用することもできます。これにより、統計プロットや処理など、より複雑な処理を実行できます。

まず、パッケージマネージャーからFFprobeをインストールしましょう。

$ sudo apt install ffmpeg

次に、これを使用して、sample-5s.mp4ファイルに関する情報を表示できます。

$ ffprobe sample-5s.mp4 
...truncated...
  libpostproc    55.  9.100 / 55.  9.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'sample-5s.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.44.100
  Duration: 00:00:05.76, start: 0.000000, bitrate: 3956 kb/s
  Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 3857 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
    Metadata:
      handler_name    : ISO Media file produced by Google Inc. Created on: 08/17/2020.
      vendor_id       : [0][0][0][0]
  Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 127 kb/s (default)
    Metadata:
      handler_name    : ISO Media file produced by Google Inc. Created on: 08/17/2020.
      vendor_id       : [0][0][0][0]

または、 -hide-banner オプションを使用して結果をトリミングし、入力ファイルに関する情報のみを表示することもできます。

$ ffprobe sample-5s.mp4 -hide_banner

オプションを使用して、表示する情報を指定することもできます。 -show_format オプションを使用して、ファイルの形式に関する詳細情報を表示してみましょう。

$ ffprobe sample-5s.mp4 -show_format -hide_banner
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'sample-5s.mp4':
  ...Truncated...
[FORMAT]
filename=sample-5s.mp4
nb_streams=2
nb_programs=0
format_name=mov,mp4,m4a,3gp,3g2,mj2
format_long_name=QuickTime / MOV
start_time=0.000000
duration=5.759000
size=2848208
bit_rate=3956531
probe_score=100
TAG:major_brand=isom
TAG:minor_version=512
TAG:compatible_brands=isomiso2avc1mp41
TAG:encoder=Lavf58.44.100
[/FORMAT]

5. ExifToolの使用

ExifToolは、オーディオ、ビデオ、画像、PDFなどのさまざまな種類のファイルのメタデータを読み取り、書き込み、更新するオープンソースアプリケーションです。メタデータには、ファイルサイズ、ファイルタイプ、日付などの情報が含まれます作成された、など。

Perlライブラリとしても、プラットフォームに依存しないコマンドラインアプリケーションとしても利用できます。

最初にExifToolをインストールしましょう。

$ sudo apt install libimage-exiftool-perl

インストール後、これを使用してsample-5s.mp4に関する情報を取得できます。

$ exiftool sample-5s.mp4 
ExifTool Version Number         : 12.16
File Name                       : sample-5s.mp4
Directory                       : .
File Size                       : 2.7 MiB
File Modification Date/Time     : 2020:08:23 22:31:05+03:00
File Access Date/Time           : 2022:04:17 07:53:51+03:00
File Inode Change Date/Time     : 2022:04:17 07:53:50+03:00
File Permissions                : rw-rw-r--
File Type                       : MP4
File Type Extension             : mp4
MIME Type                       : video/mp4
Major Brand                     : MP4  Base Media v1 [IS0 14496-12:2003]
Minor Version                   : 0.2.0
Compatible Brands               : isom, iso2, avc1, mp41
Media Data Size                 : 2840535

オプションを使用して、取得した情報をトリミングすることもできます。 たとえば、-commonオプションの使用例を次に示します。

$ exiftool -common sample-5s.mp4 
File Name                       : sample-5s.mp4
File Size                       : 2.7 MiB
Image Size                      : 1920x1080

取得する情報をより正確に把握するために、入力ファイルの前にメタデータプロパティ名を指定できます。

$ exiftool -FileType sample-5s.mp4 
File Type                       : MP4

ここでは、ファイルの種類に関する情報を取得するメタデータプロパティ -FileType、を指定しました。

6. MPlayerの使用

Mplayer は、GUIおよびコマンドラインからオーディオおよびビデオファイルを再生するオープンソースのクロスプラットフォームメディアプレーヤーです。 Linuxで最も古いメディアプレーヤーの1つであり、さまざまなオーディオおよびビデオファイル形式、字幕タイプ、およびコーデック。

まず、Mplayerをインストールする必要があります。

$ sudo apt install mplayer

次に、これを使用してサンプルファイルに関する情報を表示できます。

$ mplayer -identify -frames 0 sample-5s.mp4 
...truncated...
ID_VIDEO_ID=0
[lavf] stream 0: video (h264), -vid 0
ID_AUDIO_ID=0
ID_AID_0_LANG=eng
[lavf] stream 1: audio (aac), -aid 0, -alang eng
VIDEO:  [H264]  1920x1080  24bpp  30.000 fps  3857.4 kbps (470.9 kbyte/s)
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
libavcodec version 58.134.100 (external)
Mismatching header version 58.91.100
Selected video codec: [ffh264] vfm: ffmpeg (FFmpeg H.264)
==========================================================================
ID_VIDEO_CODEC=ffh264
ID_FILENAME=sample-5s.mp4
...truncated...

-identify オプションを使用して、入力ファイルに関する情報を取得しています。

デフォルトでは、Mplayerは入力オーディオまたはビデオファイルを再生します。 -frames オプションを渡し、ビデオが再生されないように0に設定します。

7. 結論

この記事では、コマンドラインでビデオファイルから情報を取得するために使用できるさまざまな方法について説明しました。 この情報には、ファイルタイプ、ファイルサイズ、ビデオ品質、字幕、メタデータなどが含まれます。

デフォルトでは、各ツールは入力ファイルに関する多くの情報を出力しますが、そのオプションを使用して結果をトリミングできます。