#author("2022-09-16T15:40:04+09:00","","")
#author("2022-11-08T13:20:08+09:00","","")
*ビデオファイルの扱いメモ [#ub893b9c]

[[画像ファイルの扱い>image_files]] にも関連情報(主に imagemagick )あり

------
#contents

* ffmpeg を使って、動画にテキスト入れる、複数の動画を並べる 2017年10月11日 [#c4e76e5c]

** 動画を回転させる [#k790b5d0]
[[ffmpeg(avconv) で動画を回転させる>https://mgng.mugbum.info/815]]
に従う

「-vf オプション」を使う
- 左右反転 "hflip"
- 上下反転 "vflip"
- 右に90度回転 "transpose=1"
- 180度回転 "transpose=1,transpose=1"
- 右90度回転させて上下反転 "transpose=1,vflip"


** テキストのオーバーレイ [#weec52c5]

[[ffmpegで動画にテキストをオーバーレイする>http://ja.akionux.net/wiki/index.php/ffmpegで動画にテキストをオーバーレイする]]
や
[[ffmpegで動画上にテキストを描画する>https://qiita.com/niusounds/items/797fe0743a9d59681446]]
に従う

- テキスト「This is a text to be superimposed」
- フォントサイズ「14」
- 位置「x=100」「y=100」
- フォントの色「white」← RGBカラーコードも可
- ビットレート「-b:v 20000k」

ttfファイルが作業ディレクトリの中にないと上手く動かなかったので、ウィンドウズのttfファイルをコピーした。

「-b:v 20000k」としてビットレートを元の動画よりずっと高くして、動画の劣化を防いだ。指定しないとビットレートは低めになる。今回は 17769 kb/s だったので、20000k を指定した。


回転とテキストオーバーレイを一緒に

   ffmpeg -i infile.avi -vf "transpose=1,transpose=1,
   drawtext=fontfile=DejaVuSans.ttf:
   text='This is a text to be superimposed':fontsize=11:x=10:y=10:
   fontcolor=white" -b:v 20000k outfile.avi
  (適当に改行しています)


**黒枠を付ける [#u08ac0a0]
[[Windows の ffmpeg で生放送する方法>http://looooooooop.blog35.fc2.com/blog-entry-903.html#pad]]

「-vf オプション」を使う
- pad=width:height:x:y:color ← デフォルトは黒~
出力の幅:出力の高さ:余白の幅:余白の高さ

  ffmpeg -i infile.avi -vf "pad=(iw+40):(ih+40):20:20"
  -b:v 20000k outfile.avi
iw、ih は入力動画の幅、高さ


** ふたつを左右に並べる(hstack) [#e6636573]
[[【ffmpeg】 比較動画の作り方>http://looooooooop.blog35.fc2.com/blog-entry-990.html]]
  ffmpeg -i left.avi -i right.mp4 -filter_complex hstack outfile.avi


** 更に上下に並べる(vstack) [#y295b52f]
ここでは、ファイルサイズを少し小さくする。
18MBを下回るように -b:v を調整。

  ffmpeg -i upperfile.avi -i lowerfile.avi -b:v 4000k
  -filter_complex vstack outfile.avi


*ビデオファイルの扱いメモ 2016年10月20日+随時 [#c433c8bc]

** バッチファイルで処理 [#dbb9c310]

同じフォルダにバッチファイル(○○.bat)を置いておけば、ダブルクリックでOK

***MTSファイルを結合する [#q492b2da]
Windows の copy コマンドを利用

コマンド例
 copy /b 00000.MTS+00001.MTS+00002.MTS+00003.MTS+00004.MTS+00005.MTS+00006.MTS+00014.MTS 20161015-1.MTS

オプション
 /b
binary でコピーするよう指定(デフォルトは text)


***MTSファイルを mp4ファイルに変更する [#e479e7c5]
ffmpeg を利用(https://ffmpeg.org/)

コマンド例
 ffmpeg -i 20161015-1.MTS  -codec copy -map 0:0 20161015-1.mp4

オプション
 -i (ファイル名)
入力ファイル名を指定

 -codec copy
コーデックを変更しない指定~
録画したコーデックやフレームレートを維持したまま動画ファイル形式を変更するために指定する~
録画はAVCHDのカムコーダ(ソニーハンディカム)で行うので、コーデックはH.264、フレームレートは 29.97 fps~
mp4ファイルの再生にはコーデック H.264(または MPEG-4 AVC)に対応したプレーヤが必要

 -map 0:0
オプションは映像のみを取り出し mp4ファイルに格納する指定~
音声データは含まれず、その分ファイルサイズも小さくなる

** 一部分のフレームの切り出し 2016年11月1日 [#f88646ca]

2分のところから25分間切り出し

 ffmpeg -ss 120 -i infile.mp4 -t 1500 -vcodec copy outfile.mp4

 -ss 数値
切り出し始めの時間(秒)

 -t 数値
切り出し継続時間(秒)

 -vcodec copy
ビデオコーデックを変更しない指定

** 一部分の切り抜き(クロップ)  2016年11月1日 [#o2677246]
コーデック:H.264~
横×縦:1920×1080~
を横3、縦2の6分割した右下を切り抜きする場合

|左上|中上|右上|
|左下|中下|右下|

 ffmpeg -i infile.mp4 -vf crop=640:540:1280:540 outfile.mp4

 -vf crop=W:H:X:Y
切り抜きサイズと位置の指定~
W:切り抜き後の幅~
H:切り抜き後の高さ~
X:左からの切り抜き位置~
Y:上からの切り抜き位置

|←X→||
|↑||
|Y||
|↓||
||←W→|
||↑|
||H|
||↓|

ビデオコーデックを変更しない指定はできない~
必ずエンコードする必要あり

** サイズ変更 2020年5月14日 [#v452c42c]

結論から言うと、解像度やアスペクト比を変更するときには、
画質をめちゃめちゃ低くしたいのでなければ、-crf オプションや
映像ビットレートを指定せずとも、ffmpeg がいい感じにやってくれる。~
例)4K(3840:2160)のビデオを854:480へ変更したところ、
映像ビットレートは 55187kbps から 529kpbs になった。
たぶん、これは標準的な感じのビットレート。~
つまり、解像度やアスペクト比の変更のコマンドを発行するだけでよさそう。

*** 解像度やアスペクト比の変更 [#ef111b46]
オプション:-vf scale=854:-1 など(-1は元の比を維持する)
 $ ffmpeg -i ifile.mp4 -vf scale=854:-1 ofile.mp4

VGA(640 × 480)の 480p の垂直解像度でアスペクト比 16:9なら、
(割り切れないのだけれど)854:480 となる(YouTube などはこれ)。

*** ファイルサイズを小さくする [#g31ba91d]
オプション:-crf 32 など(デフォルトは 23)
 $ ffmpeg -i ifile.mp4 -crf 32 ofile.mp4
数字が大きくなるとファイルサイズが小さくなる(画像は荒くなる/画質は低下)

*** ファイルサイズを小さくする(映像ビットレートの変更) [#i37d7114]
オプション:-b:v 400k など(めちゃめちゃ大きな数字にするとほぼ元と同じになる)
 $ ffmpeg -i ifile.mp4 -b:v 400k ofile.mp4
数字が小さくなるととファイルサイズが小さくなる(画像は荒くなる/画質は低下)

** 静止画から動画を作成する [#v0b0b5ce]
アニメーションGIFでいいのでは?と思うかもしれませんが、
アニメーションGIFではシークバーないし、256色だし、
色数はアニメーションPNG(APNG)でクリヤできるけど、
どっちにしろシークバーないので使いづらい、
という場合に動画がよいと思うのです。

静止画のピクセル数が縦横ともに、偶数でないといけない。どちらかが奇数だと

 height not divisible by 2 (1500x925)
 width not divisible by 2 (1257x830)

などとエラーが出る(なぜ幅も偶数の必要があるのかしら???)。

*** 1枚の静止画から動画を作成する 2020年5月20日 [#p6b188c5]

 $ ffmpeg -loop 1 -i ifile.png -vcodec libx264 -pix_fmt yuv420p -t 3.0 -r 30 ofile.mp4

これで、静止画が mp4 の動画になる(音声なし)。

パラメタの説明
 -loop 1           ← ループさせる: -loop は boolian なので(本家マニュアル)、1 でON
 -vcodec libx264   ← 映像コーデック H.264:今はこれ一択ですね 
 -pix_fmt yuv420p  ← 動画フォーマット:mpeg系列なら yuv420p 一択
 -t 3.0            ← 継続時間(秒)
 -r 30             ← フレーム/秒:デフォルトは 25

参考:~
http://tecsingularity.com/ffmpeg/make-movie/~
https://ffmpeg.org/ffmpeg-filters.html

*** 複数の静止画から動画を作成する 2020年5月27日 [#dd43ca73]

分子生物学の分野の人は、タイムラプス撮影したものを動画に変換するとき、
imageJ を使うのではないかと思いますが、
imageJ ではいまひとつな場合があって。~
1枚の静止画から作成した動画を結合してもいいのですが、
連番の静止画から一気に動画を作ると手間が少ない。

 $ ffmpeg -y -r 1.0 -i %02d.png -b:v 3000k -c:v h264 -pix_fmt yuv420p -r 30 out.mp4

パラメタの説明

 -y                    ← 上書きなどの [y/N] に y と答える
 -r 1.0(はじめのもの)  ← 1秒間に何枚静止画を出すかの指定(0.2なら5秒間同じ画像)
 -b:v 3000k            ← ビットレート:大きいと綺麗になる
 -c:v h264             ← 映像コーデック H.264:今はこれ一択
 -pix_fmt yuv420p      ← 動画フォーマット:mpeg系列なら yuv420p 一択
 -r 30(後のもの)      ← 動画のフレーム/秒:デフォルトは 25 

ビットレートの指定(-b:v 3000k)を省略すると、
いい感じにファイルサイズが小さめになる
(画像も無駄に綺麗にはならない=荒くなるともいえるが)

参考:https://qiita.com/ran/items/28641a7a0ad8a40c8f72

*** imageJ でのタイムラプス動画作成  2020年5月27日 [#qf66d733]
連続画像読み込み:[File]→[Import]→[Image Sequence...]~
動画として保存:[File]→[Save As]→[AVI...]~
参考:http://tec.miyakyo-u.ac.jp/hoshi/imagej2016/image_to_movie.html



*** 複数の静止画をトリミングしてから動画を作成する 2020年5月27日 [#u4fa451a]

下準備:位置合わせを photoshop で行い、
連番の PNGファイルを作成しておく。

- Imagemagick 使ってトリミング
- 往復の「復路」のファイルをコピー
- 折り返し地点は1枚になるよう奇数の静止画を用意
- 一気に動画を作成

といった shell script~
この script のあるディレクトリにファイルをコピーし、
script を実行すれば($ sh genmovie.sh)、動画ができる。
トリミングの指定は個々にしておくべきですが、
もしかしたらルーチンの作業の場合
(=photoshop での加工で画像がいつも同じ位置になるよう仕上げられるなら)、
トリミングの指定はいつも同じまま使えるかもしれません。

genmovie.sh
 #!sh
 linenum=`ls | grep png | wc -l` # カウント
 echo "Number of PNG files:" $linenum
 #
 for i in `seq -f %02g 1 $linenum`
 do
     echo "Now trimming:" $i.png
     convert $i.png -crop 1920x1080+1047+622 t$i.png
 #    convert $i.png -crop 1920x1080+1047+622 -normalize n$i.png
     convert $i.png -crop 1920x1080+1047+622 -linear-stretch 0x0.0001% l$i.png
     #
     rev=`expr $linenum \* 2 - $i` # 折り返しの画像を1枚にする
     for rev2 in `seq -f %02g $rev $rev` # 1枚だけコピー
     do
 	cp t$i.png  t$rev2.png
     done
 done
 #
 ffmpeg -y -r 1.0 -i t%02d.png -c:v h264 -pix_fmt yuv420p -r 30 out.mp4
 ffmpeg -y -r 1.0 -i t%02d.png -vf scale=320:-1 -c:v h264 -pix_fmt yuv420p -r 30 out320.mp4
 ffmpeg -y -r 1.0 -i l%02d.png -c:v h264 -pix_fmt yuv420p -r 30 outl.mp4
 ffmpeg -y -r 1.0 -i l%02d.png -vf scale=320:-1 -c:v h264 -pix_fmt yuv420p -r 30 outl320.mp4

メモ:
 for i in {01..$linenum}
では上手く行かなかったので、seq を使った~
連番の二桁の数値 00〜99 を使いたいので、
ひとつのファイルのコピーにあたっても seq を使った 

 -normalize ←  to -contrast-stretch 2%x1% と同じ
 -linear-stretch 0x0.0001%
どちらもコントラストを強める補正~
オプションの -linear-stretch と -contrast-stretch は
よく似ているが、-linear-stretch は
the image colors are stretched mathematically で、
一方、-contrast-stretch は using the histogram bins との違いがある。
どっちが美しいのかよくわからないけれど、histogram bins を
使ってしまうと、結果的にガンマを触っていることになりそうなので、
ぼくらの仕事の分野ではよくないような気がする。~
似たもので -auto-level があるが、これは real-life images
には使わない(使えない)。外れ値があった場合、もろに影響されてしまうため。

※ -contrast-stretch の説明では、 -normalize は -contrast-stretch
0.15x0.05% と同じと書いてあり、矛盾がある

参考:
https://qiita.com/zayarwinttun/items/0dae4cb66d8f4bd2a337~
https://qiita.com/katsukii/items/383b241209fe96eae6e7~
https://qiita.com/cakipy/items/60353b22bbe852946da0~
https://qiita.com/ran/items/28641a7a0ad8a40c8f72~
https://qiita.com/yoya/items/1da8e8e04881bab67015~
https://imagemagick.org/script/command-line-options.php

動画(コントラスト強めたもので、解像度 320:180 のもの)はこちら↓


&nowiki(video:http://www.cis.kit.ac.jp/~tomaru/pukiwiki/?plugin=attach&pcmd=open&file=catmovie320.mp4&refer=movie_files);
#clear

#tinyvideo(http://www.cis.kit.ac.jp/~tomaru/pukiwiki/?plugin=attach&pcmd=open&file=catmovie320.mp4&refer=movie_files, controls, autoplay)

#tinyvideo(http://www.cis.kit.ac.jp/~tomaru/pukiwiki/?plugin=attach&pcmd=open&file=catmovie320.mp4&refer=movie_files, 01-small.png, controls, autoplay)

#ref(01-small.png)

*** 複数の動画を結合する 2020年5月27日 [#w45f8cde]

これは黒魔術です

- 魔術書(結合する動画のリスト)を作成
- 呪文を唱える

mylist.txt:
 file mydir5/mymovie08.mp4
 file mydir2/mymovie02.mp4
 file mydir4/mymovie13.mp4
 file mydir3/mymovie04.mp4

「file」は、「file」と書いておかないと魔術は使えません~
異なるディレクトリに対して魔術は使えます~

 $ ffmpeg -f concat -i mylist.txt -vcodec copy output.mp4

呪文には派生がいろいろありますが、同じ種類の複数の「生贄」から、
ひとつの魔物を作るだけなら、コーデックは変える必要はありません

参考:https://qiita.com/niusounds/items/c386e02ab8e67030bdc0

*** 動画フォーマット  2020年5月20日 [#d5c431d2]
 $ ffmpeg -pix_fmts
とすると何があるかわかる。~
yuv420p は入出力のフォーマットのフラグが立っていて、
 NB_COMPONENTS   3
 BITS_PER_PIXEL 12
とのこと。~
[[ウィキペディア>https://ja.wikipedia.org/wiki/YUV]]
によると、YUV は輝度信号Yと、2つの色差信号を使って表現される色空間。
現時点では、MPEG圧縮は YUM は 4:2:0 とのこと。
mp4 動画を作るときは yuv420p でよい。

*** フレーム/秒  2020年5月20日 [#qa9c38ff]

アナログカラーテレビ(NTSC規格:米国や日本)では 29.97 fps。~
現在も DVD などのデジタルでもこれのようです。
手元の、ソニーハンディカムも 29.97 fps でした。
後で、普通の動画と合成する予定があるのなら、一致させるべきでしょうけど、
単独で閲覧させる場合は悩ましい……。

参考:http://digitalcamera.support.fujifilm.jp/app/answers/detail/a_id/19371/~
参考:https://mossan99.hatenablog.com/entry/2013/03/28/160907


** 動画からの静止画の切り出し 2020年6月24日 [#q27a0449]

*** 1枚切り出す [#ca0d5e6f]
 ffmpeg -i ifile -ss 始点(秒) -vframes 1 -f image2 output.jpg

*** 複数枚を連続で切り出す [#h5f2c2ef]
 ffmpeg -i ifile -ss 始点(秒) -t 終点(秒) -r 数字(1秒あたり枚数) -f image2 %06d.jpg

000001.jpg で連番で出力される

参考:~
https://w.atwiki.jp/kobapan/pages/161.html~
https://qiita.com/matoken/items/664e7a7e8f31e8a46a60


** 動画の明るさの調整 2020年5月25日 [#qdc5b112]

暗く撮影してしまった動画の明さを調整したいときなど

 $ ffmpeg -i ifile.mp4 -vf eq=brightness=0.5:saturation=1.5:contrast=1.5 ofile.mp4

- brightness: -1.0 〜 1.0 デフォルトは 0
- saturation: 0.0 〜 3.0 デフォルトは 1
- contrast: -1000.0 〜 1000.0 デフォルトは 1~
ほかガンマも触れる。

参考:~
https://ffmpeg.org/ffmpeg-filters.html~
https://hfuji.hatenablog.jp/entry/2018/02/03/232126~
https://qiita.com/riversun/items/6ff25fe8620457342a5e~


** 動画の音声の変更 [#r62c99c3]

https://ffmpeg.org/ffmpeg-filters.htm

stream のどこに動画(ビデオ)や音声(オーディオ)が入っているかを知ら
ないと触れないことがある。まずは、そこで、ちょいと調べる。

 $ ffmpeg -i -ifile.mp4
 ……
 Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9] (略)
 ……
 Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo,  (略)
のようになっている。これは、~
- stream 0 に ビデオ:ビデオコーデックが H.264、YUV4:2:0、アスペクト比 1920x1080
- stream 1 に オーディオ:オーディオコーデックが AAC、サンプリング周波数が 48,000 Hz、ステレオ
とわかる。


別な音声だけのファイルの例として
 $ ffmpeg -i -ifile.mp3
 Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16p, 192 kb/s
これは、~
- stream 0 に オーディオ:オーディオコーデックが mp3、サンプリング周波数が 44,100 Hz、ステレオ
とわかる。

AAC: Advanced Audio Coding ← 普通の動画ならこれで(が?)よい~
MP3: MPEG-1 Audio Layer-3~
どちらも PCM(pulse code modulation)ではないので、
音声が圧縮されていること(場合によっては)注意


*** 動画の音源を差し替える 2020年5月25日 [#ua0dbfd2]

ビデオはこっちの stream、
オーディオはあっちの stream
というのを、-map オプションを使って指定する。
 
例えば
 $ ffmpeg -i ifile.mp4 -i ifile.mp3 -c:v copy -c:a aac -strict experimental -ar 48000 -af volume=0.5 -map 0:v -map 1:a ofile.mp4

 -c:v copy ← ビデオコーデックは入力のものを使う
 -c:a aac -strict experimental ← オーディオコーデックの AAC への変更
 -ar 48000 ← サンプリング周波数を 48 kHz へ
 -af volume=0.5 ← 音の大きさを 0.5倍に
 -map 0:v -map 1:a ofile.mp4 ← ビデオを stream 0、オーディオを stream 1 に

音声の大きさを調整するときは倍数か dB で指定できる

 -af volume = 0.5 ← デフォルトは 1
 -af volume = 10dB ← 使い途がわからん

結果は
 $ ffmpeg -i ofile.mp4
 ……
 Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9] (略)
 ……
 Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
で音声の変換もできた。

音声ファイルの音声が短いと、終わったあとは無音になる。


*** オーディオコーデックの AAC への変更 2020年5月25日 [#p8a44b24]
aac の指定に加え、オプション-strict experimental が必要

 -c:a aac -strict experimental


*** サンプリング周波数の変更 2020年5月25日 [#g9e75fdf]

オプション -ar を使う

 $ ffmpeg -i ifile.mp4 -ar 48000 ofile.mp4 
48,000 Hz になる ← DVD などの音声は 48000 Hz になる~
パワーポイントから動画を作成すると、入力音声が 44,100 Hz になる ← CD と同じ~
ビデオカメラで撮ったものと同じにしたいときなど変換するといいのかもしれない

音声ファイルだけの変更もできる
 $ ffmpeg -i ifile.mp3 -c:a aac -strict experimental -ar 48000 -af volume=0.5 ofile.mp3

https://ffmpeg.org/ffmpeg-filters.htm

*** 音声を削除する 2021年9月23日 [#i7064724]

オプション -an を使う~
オプション -vcodec copy でビデオコーデックの変更をしない(速い)

 $ ffmpeg -i ifile.mp4  -vcodec copy -an 48000 ofile.mp4 
 $ ffmpeg -i ifile.mp4  -vcodec copy -an ofile.mp4 


*** 無音の音声ファイルを作る 2022年6月9日 [#u53866d7]

音声トラックがない動画ファイルに、無音の音声を入れたいことがある。そういうときに使える。

 $ ffmpeg -t 60 -f lavfi -i aevalsrc=0 -ac 2 nosound.mp3

- -t 60: 60秒~
- -f lavfilter aevalsrc: lavfilter を使って無音にする、チャンネルは1つ(これだけだとモノラル)~
- -ac 2: ステレオ

こうしてできた無音の音声ファイルを動画の音声トラックに入れる

 $ ffmpeg -i movie-nosoundtrack.mp4 -i nosound.mp3 -c:v copy -c:a aac -strict experimental -ar 48000 -af volume=0.5 -map 0:v -map 1:a movie-nosound.mp4

音声トラックなし動画ファイルに、無音の音声を入れるとき、
音声ファイルが動画より短かい場合は後は無音となるそうな。

参考:[[【ffmpeg】動画の音声を無音に差し替える方法>https://looooooooop.blog.fc2.com/blog-entry-1070.html]]


*** 音声がついていない動画に無音の音声を付ける 2022年6月9日 [#o7bacde5]

 $ ffmpeg -i movie-nosoundtrack.mp4 -f lavfi -i aevalsrc=0:s=48000 -ac 2 -shortest movie-nosound.mp4

- -f lavfilter aevalsrc: lavfilter を使って無音にする、チャンネルは1つ(これだけだとモノラル)~
- s=48000 サンプリング周波数
- -ac 2: ステレオ

参考:[[【ffmpeg】動画の音声を無音に差し替える方法>https://looooooooop.blog.fc2.com/blog-entry-1070.html]] 


** 動画を加工する 2021年5月19日 [#ld7c984c]

撮影/作成した動画のフレームレート(fps)や音声を加工して、ファイルサイズや聞き易さや時間(早回し)などをする。

例えば、
画質を落とし(crfを大きく)、
フレームレートをNTSC規格の 29.97 fps に、
速度を 1.05倍に(画像と音声共に)、
音声のサンプリング周波数を落とし(22050 Hz)、
高音をカット(10700 Hz以下)、
オーディオコーデックをmp3に、
とするなら

 $ ffmpeg -i movie.mp4 -crf 32 -r 29.97 -vf setpts=PTS/1.05 -af asetrate=44100*1.05 -ar 22050 -cutoff 10700 -acodec libmp3lame small-fast.mp4

- -crf:画像品質とファイルサイズのバランス(トレードオフ)を調整(0--64) 数字が大きいほど画質が落ち、サイズが小さくなる(デフォルトではビットレートのみがターゲットになる)~
- -r:フレームレートを指定(デフォールトは25 ← PAL!) NTSC規格は 29.97 fps~
- -vf:video frame の設定~
- setpts=PTS/1.05:画像の速度 「1.05」は倍率~
- -af:audio frame の設定~
- asetrate=44100*1.05:元々のサンプリング周波数×速度倍率~
- -ar:音声のサンプリング周波数~
- -cutoff:音声のカットオフ周波数(サンプリング周波数はこれの2倍以上にする)~
- -acodec:オーディオコーデック~
- libmp3lame:mp3にするときのエンコーダ(LAME (Lame Ain’t an MP3 Encoder) MP3 encoder wrapper) ffmpegのネイティブエンコーダは Advanced Audio Coding (AAC) encoder~

マイクロソフトパワーポイントから出力した動画はフレームレートが 30.30 fps という半端だった。なぜ?

// Set the quality/size tradeoff for constant-quality (no bitrate target) and constrained-quality (with maximum bitrate target) modes. Valid range is 0 to 63, higher numbers indicating lower quality and smaller output size. Only used if set; by default only the bitrate target is used. 

参照
- [[ffmpeg のドキュメント>https://www.ffmpeg.org/ffmpeg-all.html]]
- [[音声形式の変換方法まとめ>https://qiita.com/suzutsuki0220/items/43c87488b4684d3d15f6]]
- [[48kbpsの低ビットレートで高音質を追求する>http://sogohiroaki.sblo.jp/article/187244377.html]]
- [[雑多な形式の音楽ファイルをmp3かm4aに一括変換するコマンド>https://slacknotebook.com/encoding-various-sound-files-to-m4a-mp3-with-ffmpeg/]]
- [[ffmpegを使って動画の再生速度を変えてみる>http://fftest33.blog.fc2.com/blog-entry-36.html]]



** ffmpeg で GPU を使ってみる 2020年5月25日 [#x23cc0ee]

自慢の品というのではない GPU
(ノートに入っているCPUの内蔵GPU、インテル HD グラフィックス)
を使ってみるには……

 $ ffmpeg -hwaccel auto 以下略

でよい(単に動かせる、ということかもしれぬ)。

参考:~
https://trac.ffmpeg.org/wiki/HWAccelIntro~
https://stackoverrun.com/ja/q/10007990

試してみたところ
 $ ffmpeg -hwaccel auto -i ifile.mp4 -vf "eq=brightness=0.2:saturation=1.5,scale=960:-1" -c:v libx264  -b:v 400k ofileha.mp4 ← オプションあり
 $ ffmpeg -i ifile.mp4 -vf "eq=brightness=0.2:saturation=1.5,scale=960:-1" -c:v libx264  -b:v 400k ofile.mp4

オプションありでは、タスクマネジャーを見ると、GPU を使っているのがわかった。
しかし、「あり」では、時間が2倍くらい長く掛ってしまった(2分20秒 vs. 1分10秒)。
だからといって CPUの使用量(%)が減る訳でもなし。~
自慢の品の GPU がないと、そして、専用オプションを使わないと、
GPU を使ってもあまり得にはならないようです。

|Today:&counter(today); |Yesterday:&counter(yesterday); |Total:&counter(); since 20 October 2016|

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS