動画ファイルのコマンド等

コマンド等を用いて動画データの確認や処理を行う手順を紹介.

目次

  1. 前準備
  2. 動画の情報取得
  3. 音声トラックの除去
  4. 動画の形式変換動画の形式変換
  5. 動画の形式変換(FFmpeg を使用)
  6. トランスコード
  7. 動画のサムネイル作成
  8. 連番画像

Octave 等で動画が処理できない場合:ファイルを "AVI, MS Compatible AVI" に変換することで解決できる場合がある.

1. 前準備

ここでサンプルとして使用する動画

Windows での前準備

Ubuntu での前準備

◆ その他 Ubuntu で動く,動画関係の便利なソフトウエア

動画ファイルの確認や操作など

インストールするには, 端末で,次のコマンドを実行する.

sudo apt -y install openshot-qt
sudo apt -y install winff
sudo apt -y install vlc
sudo apt -y install mencoder

2. 動画の情報取得

mediainfo コマンドによる情報の取得(縦横比,画素数,コーデック,フレームレートなど)(Ubuntu 上)

mediainfo 00008.MTS

3. 音声トラックの除去

音声トラックが不要という場合の処理.

音声トラックの除去(avidemux3 のコマンドを使用)

avidemux3_cli --nogui --autoindex --video-codec COPY --audio-codec NONE --load <ファイル名> --save <ファイル名>

音声トラックの除去(FFMpeg を使用)

ffmpeg -i <元ファイル.avi> -vcodec copy -an <新ファイル.avi>

4. 動画の形式変換

avidemux を用いた変換

再エンコードにより, avi 形式動画ファイルに変換,音声トラックの除去(avidemux3 のコマンドを使用)

avidemux3_cli --nogui --autoindex --video-codec avi --audio-codec NONE --load <ファイル名> --save <ファイル名>

再エンコードにより, avi 形式動画ファイルに変換(avidemux を使用)

  1. avidemux の起動
    avidemux3_qt5
    

    あるいは

    avidemux3_qt5 <ファイル名>
    
  2. ファイルを読み込む操作
    1. 読み込み開始
    2. 読み込むファイルの選択
  3. エンコード形式の設定

    ここでは,YU12 形式の avi 動画ファイルを作成することにして,次のように設定する

    • Video Output: YU12 Encoder
    • Audio Output: Copy
    • Output Format: AVI Muxer
  4. 保存開始
  5. ファイル名の設定
  6. エンコードが始まるので確認
  7. エンコード終了の確認

再エンコードにより, mp4 形式動画ファイルに変換(avidemux を使用)

上と同じような手順になる

  1. avidemux の起動
    avidemux3_qt5
    

    あるいは

    avidemux3_qt5 <ファイル名>
    
  2. ファイルを読み込む操作
    1. 読み込み開始
    2. 読み込むファイルの選択
  3. エンコード形式の設定

    ここでは,mp4 動画ファイルを作成することにして,次のように設定する

    • Video Output: Mpeg4 AVC (x264)
    • Audio Output: AAC (FDK)
    • Output Format: MP4 Muxer
  4. 保存開始
  5. ファイル名の設定
  6. エンコードが始まるので確認
  7. エンコード終了の確認

AviUtl を用いた変換

AviUtl を用いた Windows での mp4 (H.264) 形式ファイルへの変換については,別ページ »で説明

WinFF, FFMpeg を用いた変換

WinFF を用いた,avi 形式動画ファイルの変換

WinFF を用いた,avi 形式動画ファイルの変換などを行うことができる. (内部では,FFMpeg を利用)

FFMpeg で利用できる muxer と codec の確認

ffmpeg -muxers
ffmpeg -codecs

(以下省略)

(以下省略)

FFmpeg のオプション

mts 形式から avi 形式への変換(FFmpeg を使用)(Ubuntu 上)

bash プログラム

#!/bin/bash
function do_ffmpeg { 
    # usage example: do_ffmpeg "camera1/00192.MTS" "camera1/00192.avi" "libx264" "16:9"
    IN=$1 
    OUT=$2 
    VCODEC=$3 
    ASPECT=$4 
    echo ffmpeg -i $IN -vcodec $VCODEC -aspect $ASPECT -an -sn $OUT
    ffmpeg -i $IN -vcodec $VCODEC -aspect $ASPECT -an -sn $OUT
    mediainfo $OUT
}
do_ffmpeg 00008.MTS /tmp/00008.avi libx264 16:9

5. トランスコード

ISO イメージファイルの変換

ISO イメージファイルを mp4 動画ファイルに変換(avidemux3 のコマンドを使用)

ISO イメージファイルが,複数のチャプターを含む場合は,1つの動画ファイルにまとまる.

avidemux3_cli --video-codec FFmpeg4 --audio-codec AC3 --nogui --autoindex --force-alt-h264 --force-b-frame  --load a.iso --save a.mp4

ISO イメージファイルを,Divx 形式の avi 動画ファイルに変換(avidemux3 のコマンドを使用)

avidemux3_cli --video-codec Divx --audio-codec MP3 --nogui --autoindex --force-b-frame  --load a.iso --save a.avi

ISO イメージファイルを avi 動画ファイルに変換 (WinFF を使用)

ISO イメージファイルを mp4 動画ファイルに変換 (FFmpeg を使用)

ISO イメージファイルが,複数のチャプターを含む場合は,1つの動画ファイルにまとまる.

ffmpeg -i a.iso -vcodec h264 -acodec aac -aspect 4:3 -sn c.mp4

(以下省略)

別の実行例

ffmpeg -i a.iso -sn -target ntsc-dvd c.mp4

ISO イメージファイルを,cinepak 形式の avi 動画ファイルに変換 (FFmpeg を使用)

*「4:3」は処理対象に合わせて調整すること.

ffmpeg -i a.iso -vcodec cinepak -acodec mp3 -aspect 4:3 -sn a.avi

(以下省略)

ISO イメージファイルを,libx264 形式の avi 動画ファイルに変換,音声は除去 (FFmpeg を使用)

*「4:3」は処理対象に合わせて調整すること.

ffmpeg -i a.iso -vcodec cinepak -an -aspect 4:3 -sn b.avi

(以下省略)

ISO イメージファイルを avi 動画ファイルに変換(mencoder を使用)

mencoder k1.iso -oac mp3lame -ovc lavc -lavcopts vcodec=mpeg4:vqscale=1 -o /tmp/k1.avi

ISO イメージファイルから avi 形式への変換(arista-transcode を使用)

arista-transcode dvd:///home/hoge/hoge.iso -p computer -o hoge.avi

DVD ドライブ

sr0 から avi 形式への変換(arista-transcode を使用)

arista-transcode dvd:///dev/sr0@0 -p computer -o hoge.avi

トランスコードのソフトウエアの起動コマンド例

コマンド例

transcoder example
  avidemux3_cli --force-b-frame --force-alt-h264 --autoindex \
   --load "$INPUT" \
   --fps 29.97 --save "$OUTPUT"

6. 動画のサムネイル作成

動画のサムネイル作成(FFmpeg を使用)(Ubuntu 上)

bash プログラム

#!/bin/bash
function thumbnailer {  
    # usage example: thumbnailer a1.avi a1.png
    IN=$1 
    OUT=$2 
    NUM=$3 
    ffmpeg -y -i $IN -vf thumbnail=1000,tile=8x8 -frames:v 1 -an -vsync 0  $OUT 
}
thumbnailer 00008.MTS 00008.png

生成されるサムネイルの例

7. 連番画像

連番画像に変換(FFmpeg を使用)

  1. 作業用の空のディレクトリを作り,そこに AVI 形式動画ファイルを1つ置く.

    作業で、連番画像ファイルがたくさんできるので、その方が、あとで分かりやすいから(という理由のみ)

  2. FFmpeg を使用して変換

    次のコマンドを実行

    • %08d」は、数字8桁の連番画像という意味.連番画像の数字の桁数を変えたいときは、ここを変える.
    • rgb-」の部分は、分かりやすくするためのものなので、何でもよい
    ffmpeg -i <動画ファイル名> rgb-%08d.png
    

別の例

F=00008.MTS
ffmpeg -vframes 1 -ss 20 -i $F -f image2 newfile

連番画像 (image sequence) ファイルを動画ファイルに変換

FFmpeg を使用して変換

次のコマンドを実行

ffmpeg -i rgb-%08d.png <動画ファイル名>

別の例.mp4 形式に変換したい場合.ここでは,-framerate でフレームレートを設定している.

ffmpeg -r 30 -c:v libx264 -pix_fmt yuv420p -framerate 30 -i rgb-%08d.png a.mp4

カラーの連番画像 (image sequence) を、モノクロ(濃淡画像)の連番画像 (image sequence) に一括変換

ImageMagick の機能を用い一括変換

次のコマンドを実行

magick convert -type GrayScale rgb-*.png gray-%08d.png