動画ファイルのコマンド等
コマンド等を用いて動画データの確認や処理を行う手順を紹介.
【目次】
Octave 等で動画が処理できない場合:ファイルを "AVI, MS Compatible AVI" に変換することで解決できる場合がある.
1. 前準備
ここでサンプルとして使用する動画
- 00008.MTS: 00008.MTS
Windows での前準備
- Windows での ImageMagick 7, FFmpeg のインストール
インストールは,別ページ »で説明
ffmpeg の ウェブページ: https://ffmpeg.org/
- Windows での avidemux のインストール
avidemux は,ビデオ編集ソフトウェア. さまざまな種類の動画ファイルに対応し,Linux, Mac, WIndows で動く.
インストールは,別ページ »で説明
avidemux の ウェブページ: http://avidemux.sourceforge.net/
- OpenShot のダウンロードページ: https://www.openshot.org/ja/download/
- WinFF のダウンロードページ: https://www.openshot.org/ja/download/
- VLC のページ: https://www.videolan.org/index.ja.html
- mencoder
Ubuntu での前準備
- Ubuntu でのFFmpeg, mediainfo のインストール
端末で,次のコマンドを実行する.
sudo apt -y update sudo apt -y install ffmpeg mediainfo
- Ubuntu でのavidemux のインストール
avidemuxは,動画のプレビュー,編集,フォーマット変換
インストールでは,ppa:ubuntuhandbook1 を使用している.
詳しくはhttps://launchpad.net/~ubuntuhandbook1/+archive/ubuntu/avidemux
インストールするには, 端末で,次のコマンドを実行する.
sudo add-apt-repository ppa:ubuntuhandbook1/avidemux sudo apt -y install avidemux-cli sudo apt -y install avidemux-jobs-qt avidemux-qt avidemux-qt-data avidemux-plugins-cli avidemux-plugins-qt avidemux-plugins-settings sudo apt -y install openh264
◆ その他 Ubuntu で動く,動画関係の便利なソフトウエア
動画ファイルの確認や操作など
- OpenShot: 動画編集
- WinFF: FFMpeg を用いた動画処理 (実際の処理は FFMpeg が行う)
- VLC Media Player: メディアプレイヤー
- mencoder: エンコードとデコードとフォーマット変換(コマンドラインベース)
インストールするには, 端末で,次のコマンドを実行する.
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 を使用)
- avidemux の起動
avidemux3_qt5
あるいは
avidemux3_qt5 <ファイル名>
- ファイルを読み込む操作
- 読み込み開始
- 読み込むファイルの選択
- 読み込み開始
- エンコード形式の設定
ここでは,YU12 形式の avi 動画ファイルを作成することにして,次のように設定する
- Video Output: YU12 Encoder
- Audio Output: Copy
- Output Format: AVI Muxer
- 保存開始
- ファイル名の設定
- エンコードが始まるので確認
- エンコード終了の確認
再エンコードにより, mp4 形式動画ファイルに変換(avidemux を使用)
上と同じような手順になる
- avidemux の起動
avidemux3_qt5
あるいは
avidemux3_qt5 <ファイル名>
- ファイルを読み込む操作
- 読み込み開始
- 読み込むファイルの選択
- 読み込み開始
- エンコード形式の設定
ここでは,mp4 動画ファイルを作成することにして,次のように設定する
- Video Output: Mpeg4 AVC (x264)
- Audio Output: AAC (FDK)
- Output Format: MP4 Muxer
- 保存開始
- ファイル名の設定
- エンコードが始まるので確認
- エンコード終了の確認
AviUtl を用いた変換
AviUtl を用いた Windows での mp4 (H.264) 形式ファイルへの変換については,別ページ »で説明
WinFF, FFMpeg を用いた変換
WinFF を用いた,avi 形式動画ファイルの変換
WinFF を用いた,avi 形式動画ファイルの変換などを行うことができる. (内部では,FFMpeg を利用)
FFMpeg で利用できる muxer と codec の確認
ffmpeg -muxers ffmpeg -codecs
(以下省略)
(以下省略)
FFmpeg のオプション
- -i <ISO イメージファイル名>: 変換したい ISO イメージファイル
- -vcodec <コーデック名>: ビデオのコーデック名.「copy」も指定可能.
- -acodec <コーデック名>: オーディオのコーデック名.「copy」も指定可能.
- -an : オーディオの記録を無効にする場合に付ける
- -aspect: 縦横比,4:3 や 16:9 を指定
- -sn : サブタイトルの記録を無効にする
- 末尾のファイル名: 変換してできる動画ファイル名
mts 形式から avi 形式への変換(FFmpeg を使用)(Ubuntu 上)
bash プログラム
- -an : オーディオの記録を無効にする
- -sn : サブタイトルの記録を無効にする
- -aspect: 縦横比 ※ mediainfo コマンドで確認できる
#!/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 を使用)
- 作業用の空のディレクトリを作り,そこに AVI 形式動画ファイルを1つ置く.
作業で、連番画像ファイルがたくさんできるので、その方が、あとで分かりやすいから(という理由のみ)
- 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 を使用して変換
次のコマンドを実行
- 「rgb-%06d.png」は処理対象となる連番画像ファイルを一括で指定するためのもの
- 「%06d」は、数字6桁の連番画像という意味.
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 の機能を用い一括変換
次のコマンドを実行
- 「rgb-*.png」は処理対象となるカラー連番画像ファイルを一括で指定するためのもの
- 「%08d」は、数字8桁の連番画像という意味.「gray-」の部分は、分かりやすくするためのものなので、何でもよい
magick convert -type GrayScale rgb-*.png gray-%08d.png