FFmpeg&Handbrake
■FFmpeg:Fast Forward Mpeg(The Moving Picture Experts Group (MPEG)):ビデオ、オディオ処理するopensourse ツール
■ファイルのプロバテを確認する、下記のコマンド、プロンプトに打ち込む
ffprobe out.mp3
■ビデオ/オディオの包装式の変更(.mov→.mp4)
ffmpeg -i input.mov output.mp4
・ -i : input
・ファイルの名前にスペースを使ってはいけない。それはコマンドの中で、スペースはデリミタ[delimiter]/セパレート[separator]として使われている。
→ファイルの名前スペースが入っている時、ファイル名前[” ”]をつける
■ビデオ/オディオのエンコーとは=圧縮方法)
ffmpeg -codecs # サポートしているエンコード方法を閲覧
・一般的に使われているエンコード方式
①MP4(H264ビデオ+AACオディオ) →一般的なネット上の動画、おすすめ
②WebM(VP8ビデオ+Vorbisオディオ) →google開発、youtubeがこれを使っている
③OGG(Theoraビデオ+Vorbisオディオ) →オープンソース
■音声のエンコードする
ある音楽が自分の音楽プレイヤーソフトで再生できない。
エンコードして、音楽プレイヤーが支持できるエンコードへ変換する。
ffmpeg -i in.flac -acodec libmp3lame -ar 44100 -ab 320k -ac 2 out. mp3
・-i in.flac:in.flacファイルをinputインプット
・-acodec: a(audio) codec(decoder coder/decode the encode program )
・libmp3lame:mp3のencode式、省略可能
・-ar 44100:audio rate(サンブル周波数/采样率) 。指定しない時、もとファイルのsample rate を使う
・-ab 320k/-b:a 320k:audio bitrate(ビットレート)、音質。指定しない時、ディフォルト128Kを使う、ネット上は128k、192k の方が多い
・-ac 2:audio channel(声道)、ダブルチャンネル
・out.mp3:out.mp3としてoutputする
※さならる設定に関して、
ffmpeg -hでaudio optionsの中で確認することができる。
■動画のエンコードする
in.webmをout.mp4へ変換する
ffmpeg -i in.webm -s 1920*1080 -pix_fmt yuv420p -vcodec libx264 -preset medium -profile:v high -level:v 4.1 -crf 23 -acodec aac -ar 44100 -1c 2 -b:a 128k out.mp4
・-i in.webm:ファイルin.webmをインプットする
・-s 1920*1080:sizeを1920*1080を指定する
・-pix_fmt yuv420p:pixel format:動画の色範囲を指定する。動画のアップしたいサイトによって選択する
色の種類は ffmpeg -pix_fmtsで確認できる
①YUV(yuv420p →一般なネット動画サイトがこの色範囲を使う)
②NV
③RGB..
・-vcodec libx264:動画のcodecを指定(libx264)する
・-preset medium:codecのディフォルト設定(编码器预设)、設定が高ければ、精度が高くなり、CPUをより多く使う、時間もかかる。
設定範囲は10段階
ultrafast -> superfast ->veryfast(録画する時、おすすめ) -> faster -> fast -> medium -> slow -> slower -> veryslow(圧縮するとき、¥おすすめ) -> placedo
・-profile:v high :codecの設定、圧縮の比例と関係する
設定が高ければ、圧縮の精度が高くなる。低ければ、圧縮の質が落ちて、容量はそれなり減少できる。
Baseline(随時の動画) -> Extended -> Main(流媒体) -> High(超清、今のネット上、ハイレベルの動画がよく使う配置) -> High 10 -> High 4:2:2 -> High 4:4:4 predictive
・-level:v 4.1 :codecに対して、具体的な設定
4.1(1080の動画) → 4.2 → 5 → 5.1
・-crf 23:码率控制模式: Constant Rate Factor(恒定速率因子模式:画面ごとに、必要なビット数を取ってくる)。
特徴は画質が安定けど、ビット数を精度高くコントロールするのは難しい。
適用な場面は、画質を求める、サイズを気にないパターン。
画質設定の範囲は 0..18..23..28..51 (普通18~28の間に設定する/handbrakeの設定と同じ)
・-r 30:·ビデオのレート数 30fps/s(视频帧率)
・-acodec acc:音声のacodeをAACとして設定する
・-b:a 320k/-ab 320k: audio bite
■ビット数コントロール(码率控制)とは:画像ごとにどれだけのビット数を按分する。FFmpegは3つビットコントロール方法がある
① -qp(Constant Quantizer/恒定量化器模式) Quantizerとは、画像を数字に変換する、0~50段階に分けて、0とは破損なし画質。マニュアル設定はおすすめしない、自動設定をおすすめ
② -crf(Constant Rate Factor):変動する-qpパターン、人の目に合わせて、区別できないほどでファイルを圧縮する、一番おすすめ
③ -b(bitrate/固定目标码率模式):ファイルのビット数とサイズが自分で設定できる。
・デフォルトのパターンはVBR(Variable Bit Rate/动态比特率)、簡単な内容は少ないビット数を按分する、複雑な内容だと、多くなビット数を按分する
・ABR(Average Bit Rate/平均比特率):現在ネット上の動画が一番使われている方法でエンコードする。
・CBR(Constants Bit Rate/恒定比特率): ABRの改善版、できるだけビット数を同じ数字で保つ →あまり使われていない
■ビデオ/オディオの分割、接続
ffmpeg -i in.mp3 -ss 00:01:00 -to 00:01:10 -acodec copy out.mp3
ffmpeg -i in.mp3 -ss 00:01:00 -t 10 -acodec copy out.mp3
・-ss 00:01:00:オディオ起点00:01:00
・-to 00:01:10:オディオ終点00:01:00
・-t 10:起点からの10s
・-acodec copy
※Avidemuxとは:同じopensourceツール、FFmpegをもとに作られたもの、GUIを持ち、ビデオとオディオの分割と接続に特化したツール。
■複数ファイルを同時圧縮する
[Windows環境]
for %i in (*wav) do (ffmpeg -i “%i” -acodec libmp3lame -ar 44100 -ab 192k -ac 2 “%~ni”.mp3)
<refer to site>
<refer to youtube>
[Linux]
for FILE in *.wav
do
FILENAME=`echo ${FILE} | sed ‘s/\.[^\.]*$//’`
ffmpeg -i “${FILENAME}.wav” -acodec libmp3lame -ar 44100 -ab 192k -ac 2 “${FILENAME}.mp3”
done
————–
for FILE in */*.wav
do
FILENAME=`echo ${FILE} | sed ‘s/\.[^\.]*$//’`
ffmpeg -i “${FILENAME}.wav” -acodec libmp3lame -ar 44100 -ab 192k -ac 2 “${FILENAME}.mp3”
done
<refer to site>
https://qiita.com/shunchan0677/items/b44aa374960989c63dd4
■動画チュートリアル
<refer to site>
https://www.bilibili.com/video/BV1Ft411s7Xa?p=5
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
■handbrake
■Constant Quality vs Average Bit Rate →for good quality,you should choose Constant Quality
[refer to site]
https://handbrake.fr/docs/en/latest/technical/video-cq-vs-abr.html
■Video Codec :H.265(x265)をおすすめ
[refer to site]
10 bit, 12 bit, or H265? which one’s the best and has the higher quality of video? from VideoEditing
■Frame rate →for good quality,you should choose Selecting Same as Source
allows you to select Variable Frame Rate (VFR)
■office document
[refer to site]
https://handbrake.fr/docs/en/latest/technical/video-codecs.html