1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ffmpegを用いてlinux版のdavinci resolveで扱うことのできるコーデック(mov)へ複数の動画を一括変換する

Last updated at Posted at 2020-08-19

どうでもいい話

ウィンドウズは高いので入れたくないし,macは入りません.
ていうことでubuntuを入れてDaVinci Resolve をインストールしたところ,linux版は対応しているコーデックは少ない!
そこで,対応しているコーデックに動画を変換してやる必要が有るのでffmpegを使うのですが,動画のクリップ一個一個を手動で変換していくのは手間ですよね?
そこでMakefileを用いて自働化してしまいましょう!

作業

ffmpegのインストール

$ sudo apt update
$ sudo apt -y upgrade
$ sudo apt install ffmpeg

対応しているコーデックへの変換

変換方法のリンク
上記のリンクを参考に変換するためのコマンドを書きます.

ffmpeg -i input.mp4 -vcodec dnxhd -acodec pcm_s16le -s 1920x1080 -r 30000/1001 -b:v 36M -pix_fmt yuv422p -f mov output.mov

一応これをそれぞれの動画に対して入力,出力を書き換えてやれば変換は済みます.
でもいくつものファイルに対してコマンド叩くのはめんどくさいでしょ?

Makefileを書く

.
├── encode
│   ├── hoge.mov
│   └── fuga,mov
├── Makefile
├── hoge.MOV
└── fuga.MOV

下のMakefileは上の構造のような形で使います.

OUTDIR := encoded
SRCS := $(wildcard *.MOV)
TARGET := $(addprefix $(OUTDIR)/,$(patsubst %.MOV,%.mov,$(SRCS)))
$(warning $(TARGET))

CC = ffmpeg
CFLAGS = -i

.PHONY: all clean
all: $(TARGET)

$(OUTDIR)/%.mov: %.MOV
	@if [ ! -e `dirname $@` ]; then mkdir -p `dirname $@`; fi
	$(CC) $(CFLAGS) $< -vcodec dnxhd -acodec pcm_s16le -s 1920x1080 -r 30000/1001 -b:v 36M -pix_fmt yuv422p -f mov $@

clean:
	rm -rf $(OUTDIR)

とりあえず説明は喫茶店でかきます

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?