Skip to main content

A command line tool to handle a multi audio track video file

Project description

matvtoolpy / MultiAudioTrackVideoToolPy

A command line tool to handle a multi audio track video file.

マルチオーディオトラック動画ファイルを取り扱うためのコマンドラインツール

インストール

基本的にFFmpegのラッパーです。別途FFmpegのインストールが必要です。

matvtool本体は、以下からダウンロード・インストールできます。

用途

OBS Studioの録画機能やGeForce Experienceの録画機能などで作成した、マルチオーディオトラック動画ファイルを、 マルチオーディオトラックの状態を保ったまま簡易に編集し、後に高度な動画編集ソフトで使う素材として使いやすい形に整えるためのツール。

用例

slice: クリップの作成

再エンコードしないため、高速ですが時間精度が低いです。 長時間の録画をおおまかに分割する用途を想定しています。 フレーム単位でクリップしたい場合、後段の動画編集ソフトで改めて加工してください。

matvtool slice -ss 00:05:00 -to 00:10:00 -i input.mkv output.mkv

crop_scale: 切り取り・拡大縮小

# 左上1600x900を切り取って、1920x1080に拡大
matvtool crop_scale -i input.mkv --crop w=1600:h=900:x=0:y=0 --scale 1920:1080 output.mkv

# 右下1600x900を切り取って、1920x1080に拡大
matvtool crop_scale -i input.mkv --crop w=1600:h=900:x=iw-ow:y=ih-oh --scale 1920:1080 output.mkv

find_image: 画像の出現時間・出現フレームを検索

動画のスナップショットやクロップ画像を使用して、出現時間・出現フレームを検索します。 特定シーンの頭出しやチャプターを作成する用途を想定しています。 確実・正確に検出できるとは限りません。 出力は、VSCodeのマルチカーソル機能やseqコマンドなどを使って手動処理することを想定しています(試合1~試合10までの連番文字列生成:seq -f "試合%g" 1 10)。

sliceと同様のオプションで検索範囲の時間を指定できます。--fpsオプションで比較処理におけるフレームの読み飛ばしができます(コーデックにおけるフレーム間予測の関係で、全フレームのデコードは発生すると思われるため、デコード処理時間が支配的な場合はあまり意味がないと思われます)。 出力は、内部処理における時間・フレームと、入力動画における時間・フレームが併記されます。

-icrop/--input_video_cropオプション、-refcrop/--reference_image_cropオプションで、入力動画や参照画像の一部を使用した検索ができます。値はcrop_scale--cropオプションと同様です。 特定のアイコンが含まれることがわかっているが、フレーム中の他の部分が大きく違うケースの検索に有用です。

-it/--output_intervalオプションで、連続出現時の出力を抑制できます。手動処理を減らすためのオプションです。 例えば、-it 10を指定すると、前回出現してから10秒間のフレームで再び出現を検出しても、ログ出力しません(YouTubeのチャプター機能では、最小チャプター間隔は10秒)。

-p, --progressオプションで、処理の進捗状況の出力方法を変更できます。 値は、tqdm 標準エラー出力・インタラクティブシェル用(デフォルト)、plain 標準エラー出力・逐次出力、none 出力なし、が利用できます。

処理に時間のかかる長い動画を入力するときは、teeコマンドなどで出力を永続化したり、tmuxコマンドなどでバックグラウンド処理したりすると便利です。うまく出力が表示されないときは、一時的に環境変数PYTHONUNBUFFERED=1を設定すると改善するかもしれません。

# reference.pngに一致するフレームを検索
matvtool find_image -i input.mkv -ref reference.png

# 10 FPSでreference.pngに一致するフレームを検索(フレームの読み飛ばしによる高速化を意図)
matvtool find_image -i input.mkv -ref reference.png --fps 10

# 左上1600x900を使用してreference.pngに一致するフレームを検索
matvtool find_image -i input.mkv -icrop w=1600:h=900:x=0:y=0 -ref reference.png -refcrop w=1600:h=900:x=0:y=0

# 最小10秒間隔で同上、10 FPS、出力永続化
PYTHONUNBUFFERED=1 matvtool find_image -i input.mkv -icrop w=1600:h=900:x=0:y=0 -ref reference.png -refcrop w=1600:h=900:x=0:y=0 --fps 10 -it 10 | tee chapters.txt

audio: オーディオトラック一覧の確認

matvtool audio -i input.mkv

select_audio: オーディオトラックを選択して新規動画ファイルとして出力

matvtool select_audio -i input.mkv --audio_index 2 3 -- output.mkv

開発

依存関係の追加・更新

pip-compile requirements.in
pip-compile requirements-test.in

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aoirint_matvtool-0.1.2b2.tar.gz (14.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aoirint_matvtool-0.1.2b2-py3-none-any.whl (16.0 kB view details)

Uploaded Python 3

File details

Details for the file aoirint_matvtool-0.1.2b2.tar.gz.

File metadata

  • Download URL: aoirint_matvtool-0.1.2b2.tar.gz
  • Upload date:
  • Size: 14.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.14

File hashes

Hashes for aoirint_matvtool-0.1.2b2.tar.gz
Algorithm Hash digest
SHA256 373016c4745586b2468405c297000baf665f33b3a514cee6dafd4753ded1cf7f
MD5 ec4adfb3e816c04d54c978e15c12479e
BLAKE2b-256 c8e5f82bc84cdfc8d4dbe602a8aeaac4e1cabf76d36160d3a3a301dd02974f0c

See more details on using hashes here.

File details

Details for the file aoirint_matvtool-0.1.2b2-py3-none-any.whl.

File metadata

File hashes

Hashes for aoirint_matvtool-0.1.2b2-py3-none-any.whl
Algorithm Hash digest
SHA256 3b0ff766065e556357e4df6d043ee7e39f7b4f69a1e9d60d953232a29dcbc007
MD5 69535b7b22a86c8acc36147f6e260e70
BLAKE2b-256 60450217746f86bd388d1a369722b7c7544cd1146066f05f45df0315164f86c0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page