Linux で FFmpeg を使用してビデオ フレームをカウントする方法
ビデオ フレームのカウントは、ビデオ編集、品質分析、フレーム レートの決定など、さまざまなシナリオで役立ちます。
マルチメディア ファイルを処理するための人気のあるオープンソース ツールである FFmpeg は、ビデオ フレームをカウントする簡単な方法を提供します。
この記事では、Linux でFFmpeg を使用してビデオ フレームをカウントする方法について説明します。
Linux への FFmpeg のインストール
FFmpeg が Linux システムにインストールされています。インストールされていない場合は、次のコマンドを使用して FFmpeg をインストールします。
sudo apt install ffmpeg [On Debian, Ubuntu and Mint]
sudo yum install ffmpeg [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/ffmpeg [On Gentoo Linux]
sudo apk add ffmpeg [On Alpine Linux]
sudo pacman -S ffmpeg [On Arch Linux]
sudo zypper install ffmpeg [On OpenSUSE]
sudo pkg install ffmpeg [On FreeBSD]
FFmpeg を使用してビデオ フレームをカウントする
FFmpeg を実行する前に、ビデオ ファイルへの正確なパスを確認してください。このパスは、ダウンロード フォルダ、ビデオ ディレクトリなどにある可能性があります。位置。
ビデオ内のフレームをカウントするには、次のコマンドを使用します。
ffmpeg -i video.mp4 -map 0:v:0 -c copy -f null -
コマンドの説明:
ffmpeg
: FFmpeg プログラムを実行します。-i video.mp4
: 入力ビデオ ファイルを指定します。-map 0:v:0
: 最初のビデオ ストリーム (メイン ビデオ) をマッピングします。-c copy
: 再エンコードせずにビデオ コーデックをコピーします (処理が高速になります)。-f null -
: 出力を null シンクに送信します (出力を破棄します)。
FFmpeg は、処理する各フレームの統計を含む出力を端末に表示します。出力の終わり近くで、処理されたフレーム数を示す行を探します。
frame= 4926 fps=0.0 q=-1.0 Lsize=N/A time=00:03:16.96 bitrate=N/A speed=1.97e+04x
frame
値は、ビデオ内のフレームの総数を表します。たとえば、frame= 4926
と表示されている場合、ビデオに 4926
フレームがあることを意味します。
フレームカウント結果をテキストファイルに保存したい場合は、grep コマンドを使用してフレーム情報のみをフィルタリングし、ファイルにリダイレクトします。
ffmpeg -i video.mp4 -map 0:v:0 -c copy -f null - 2>&1 | grep "frame=" > frame_count.txt
frame_count.txt
ファイルを開いて、合計フレーム数を確認します。
cat frame_count.txt
サンプル出力:
frame= 4926 fps=0.0 q=-1.0 Lsize=N/A time=00:03:16.96 bitrate=N/A speed=2.15e+04x
FFprobe を使用してビデオ フレームをカウントする
FFmpeg スイート内の別のツールである FFprobe は、ビデオをデコードせずにフレームに関する情報を直接抽出できます。多くの場合、FFmpeg を使用してフレームをカウントするよりも高速です。
ffprobe でフレームをカウントするには、次のコマンドを使用します。
ffprobe -v error -count_frames -select_streams v:0 -show_entries stream=nb_read_frames -of csv=p=0 video.mp4
このコマンドは、合計フレーム数を 1 つの数値として出力します。
4926
結論
ビデオ内のフレームをカウントするのは、Linux 上のFFmpeg を使用すると簡単です。これにはいくつかの方法があります。最も直接的な方法は、FFmpeg で -f null -
コマンドを使用することですが、より迅速な結果を得るために FFprobe を使用することもできます。