Takuya Miyashita
This site
Web
Start:
*ffmpeg [#led7feb7]
#contents
[[ffmpeg Documentation>https://ffmpeg.org/ffmpeg.html]] ...
**静止画を繋げて動画作成 [#yb238ea4]
静止画を動画のそれぞれ1コマのとして利用するために,画像...
以下,~
snapshot_001.png~
snapshot_002.png~
...~
のような画像ファイル( .svg 等でも同様)があるとする.~
~
***1秒あたり n 枚の画像を挿入して gif を作成 [#f7731f92]
rオプションでフレームレートを指定する.
#codeprettify{{
fps=10 # 10 frames per second
ffmpeg -r $fps -i snapshot_%03d.png example.gif
}}
また,デフォルトでは 000 や 001 や等の0付近のファイルで...
上記の場合,連番になっている全ての画像ファイルが動画に使...
~
~
***画質を落としたくない [#r9f9ac81]
#codeprettify{{
ffmpeg -r $fps -i snapshot_%03d.png -q:v 1 example.gif
}}
オプションの -q:v は -qscale:v と同じ??? :v はビデオの...
ここでは音は使わないため -q:a は関係なし.
~
~
***パレットの最適化 [#g327f5b5]
上記のように作成した gif の画質が変だったり不自然な線が掛...
#codeprettify{{
ffmpeg -i snapshot_%03d.png -vf palettegen palette.png
ffmpeg -r $fps -i snapshot_%03d.png -i palette.png -filte...
}}
これと大体同じことを1行で済ませる方法もあるらしい.
#codeprettify{{
ffmpeg -r $fps -i snapshot_%03d.png -filter_complex "sca...
}}
scale オプションは出力の幅も指定する.scale=720:-1 の -1...
~
~
***n 番目のファイルから動画を作成(n-1 番目までは無視) [...
#codeprettify{{
startnum=11 # 11から
ffmpeg -r $fps -start_number $startnum -i snapshot_%03d.p...
}}
この場合, snapshot_011.png から動画が作成される.snapshot...
~
~
***n 番目のファイルから始まり, n+50 番目のファイルで終わ...
#codeprettify{{
ffmpeg -r 10 -start_number n -i snapshot_%03d.png -vframe...
}}
vframes オプションは,-i の後に付けなければならない.~
n を 51 とすれば,snapshot_051.png から snapshot_100.png ...
~
~
***ファイルが連番でないとき [#he9e5ee5]
snapshot_000.png, snapshot_005.png, snapshot_010.png の...
#codeprettify{{
ffmpeg -r 10 -i snapshot_%*.png example.gif
}}
というように %* とすれば動画作成可能.
~
~
***ログの出力量の変更 [#d5e40857]
loglevel オプションを使うと,出力量を調整できる.
#codeprettify{{
ffmpeg ....... -loglevel quiet
}}
quiet は何も出力せず,その他は少ない順に fatal, error, wa...
~
~
***上書き [#bddf363f]
保存先に同じ名前のファイルがあるときは通常 y/n で確認の入...
#codeprettify{{
ffmpeg -y ........................
}}
~
~
***メモ [#r60ee138]
convert の gif 作成は eps でもできるが,ffmpeg は eps で...
convert で png などに変換して ffmpeg でアニメーションを作...
~
~
**動画から静止画を抽出 [#kcbf0b2b]
上記の逆で,動画から静止画を抽出することもできる.~
1秒あたり 30 フレームの example.mp4 というファイルのコマ...
#codeprettify(lang-bash){{
# def
file="example.mp4" # ファイル名
startsec=14 # 切り出しの開始時間(秒)
duration=3 # 切り出す時間の長さ(秒),この場合, 14+3=17秒...
fps=30 # fps
output="frame%05d.png" # filename output
# ffmpeg
# -i は -ss の後に
ffmpeg -ss $startsec -t $duration -i $file -r $fps -f ima...
}}
出力画像のファイル名は,上記のように "frame%05d.png" と指...
~
切り出し開始時間 ss オプションで時間を指定したあとに i オ...
さらに,最初のフレーム(0.00秒時)が 00001.png になるとわか...
オプションの配置順が重要らしい.~
~
ちなみにこのときの ffmpeg のバージョンは下記の通り.
version 2.8.14-0ubuntu0.16.04.1 Copyright (c) 2000-2018 ...
~
~
**動画の連結 [#k1770a20]
例えば mp4 形式の動画を結合して1つの mp4 にしたいとき.
#codeprettify{{
ffmpeg -safe 0 -f concat -i mp4files.txt -c:v copy -c:a c...
}}
mp4files.txt (ファイル名は任意)の中に,連結したい順番に...
file inputA.mp4
file inputB.mp4
file inputC.mp4
~
~
**動画のファイル形式変換(mp4 → mpg) [#d666cbde]
DVD へ焼くための mp4 から mpg への変換でかなり手こずった.~
シンプルに
#codeprettify{{
ffmpeg -i hoge.mp4 hoge.mpg
}}
でも可能だが,映像にも音声にもノイズが出てしまう.~
~
このページを参考に解決した → [[ffmpegで1080iのMPEG2から48...
元動画の映像・音声のビットレートをそれぞれ確認し,下記の...
#codeprettify{{
ffmpeg -i hoge.mp4 -vf yadif=1,scale=1920:1080,tinterlace...
}}
サイズを表す scale や 音声のビットレートを指定する -b:a ...
それぞれのオプションが何を意味するかは調べれば出てくるが...
End:
*ffmpeg [#led7feb7]
#contents
[[ffmpeg Documentation>https://ffmpeg.org/ffmpeg.html]] ...
**静止画を繋げて動画作成 [#yb238ea4]
静止画を動画のそれぞれ1コマのとして利用するために,画像...
以下,~
snapshot_001.png~
snapshot_002.png~
...~
のような画像ファイル( .svg 等でも同様)があるとする.~
~
***1秒あたり n 枚の画像を挿入して gif を作成 [#f7731f92]
rオプションでフレームレートを指定する.
#codeprettify{{
fps=10 # 10 frames per second
ffmpeg -r $fps -i snapshot_%03d.png example.gif
}}
また,デフォルトでは 000 や 001 や等の0付近のファイルで...
上記の場合,連番になっている全ての画像ファイルが動画に使...
~
~
***画質を落としたくない [#r9f9ac81]
#codeprettify{{
ffmpeg -r $fps -i snapshot_%03d.png -q:v 1 example.gif
}}
オプションの -q:v は -qscale:v と同じ??? :v はビデオの...
ここでは音は使わないため -q:a は関係なし.
~
~
***パレットの最適化 [#g327f5b5]
上記のように作成した gif の画質が変だったり不自然な線が掛...
#codeprettify{{
ffmpeg -i snapshot_%03d.png -vf palettegen palette.png
ffmpeg -r $fps -i snapshot_%03d.png -i palette.png -filte...
}}
これと大体同じことを1行で済ませる方法もあるらしい.
#codeprettify{{
ffmpeg -r $fps -i snapshot_%03d.png -filter_complex "sca...
}}
scale オプションは出力の幅も指定する.scale=720:-1 の -1...
~
~
***n 番目のファイルから動画を作成(n-1 番目までは無視) [...
#codeprettify{{
startnum=11 # 11から
ffmpeg -r $fps -start_number $startnum -i snapshot_%03d.p...
}}
この場合, snapshot_011.png から動画が作成される.snapshot...
~
~
***n 番目のファイルから始まり, n+50 番目のファイルで終わ...
#codeprettify{{
ffmpeg -r 10 -start_number n -i snapshot_%03d.png -vframe...
}}
vframes オプションは,-i の後に付けなければならない.~
n を 51 とすれば,snapshot_051.png から snapshot_100.png ...
~
~
***ファイルが連番でないとき [#he9e5ee5]
snapshot_000.png, snapshot_005.png, snapshot_010.png の...
#codeprettify{{
ffmpeg -r 10 -i snapshot_%*.png example.gif
}}
というように %* とすれば動画作成可能.
~
~
***ログの出力量の変更 [#d5e40857]
loglevel オプションを使うと,出力量を調整できる.
#codeprettify{{
ffmpeg ....... -loglevel quiet
}}
quiet は何も出力せず,その他は少ない順に fatal, error, wa...
~
~
***上書き [#bddf363f]
保存先に同じ名前のファイルがあるときは通常 y/n で確認の入...
#codeprettify{{
ffmpeg -y ........................
}}
~
~
***メモ [#r60ee138]
convert の gif 作成は eps でもできるが,ffmpeg は eps で...
convert で png などに変換して ffmpeg でアニメーションを作...
~
~
**動画から静止画を抽出 [#kcbf0b2b]
上記の逆で,動画から静止画を抽出することもできる.~
1秒あたり 30 フレームの example.mp4 というファイルのコマ...
#codeprettify(lang-bash){{
# def
file="example.mp4" # ファイル名
startsec=14 # 切り出しの開始時間(秒)
duration=3 # 切り出す時間の長さ(秒),この場合, 14+3=17秒...
fps=30 # fps
output="frame%05d.png" # filename output
# ffmpeg
# -i は -ss の後に
ffmpeg -ss $startsec -t $duration -i $file -r $fps -f ima...
}}
出力画像のファイル名は,上記のように "frame%05d.png" と指...
~
切り出し開始時間 ss オプションで時間を指定したあとに i オ...
さらに,最初のフレーム(0.00秒時)が 00001.png になるとわか...
オプションの配置順が重要らしい.~
~
ちなみにこのときの ffmpeg のバージョンは下記の通り.
version 2.8.14-0ubuntu0.16.04.1 Copyright (c) 2000-2018 ...
~
~
**動画の連結 [#k1770a20]
例えば mp4 形式の動画を結合して1つの mp4 にしたいとき.
#codeprettify{{
ffmpeg -safe 0 -f concat -i mp4files.txt -c:v copy -c:a c...
}}
mp4files.txt (ファイル名は任意)の中に,連結したい順番に...
file inputA.mp4
file inputB.mp4
file inputC.mp4
~
~
**動画のファイル形式変換(mp4 → mpg) [#d666cbde]
DVD へ焼くための mp4 から mpg への変換でかなり手こずった.~
シンプルに
#codeprettify{{
ffmpeg -i hoge.mp4 hoge.mpg
}}
でも可能だが,映像にも音声にもノイズが出てしまう.~
~
このページを参考に解決した → [[ffmpegで1080iのMPEG2から48...
元動画の映像・音声のビットレートをそれぞれ確認し,下記の...
#codeprettify{{
ffmpeg -i hoge.mp4 -vf yadif=1,scale=1920:1080,tinterlace...
}}
サイズを表す scale や 音声のビットレートを指定する -b:a ...
それぞれのオプションが何を意味するかは調べれば出てくるが...
Page:
Edit with a page name which already exists