Linuxのコマンドラインでビデオ情報を取得する
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. 結論
この記事では、コマンドラインでビデオファイルから情報を取得するために使用できるさまざまな方法について説明しました。 この情報には、ファイルタイプ、ファイルサイズ、ビデオ品質、字幕、メタデータなどが含まれます。
デフォルトでは、各ツールは入力ファイルに関する多くの情報を出力しますが、そのオプションを使用して結果をトリミングできます。