ラベル FFmpeg の投稿を表示しています。 すべての投稿を表示
ラベル FFmpeg の投稿を表示しています。 すべての投稿を表示

2021年10月31日日曜日

FFmpeg いくつかのパッチファイル

 1.  手ぶれ補正(スタビライザー)

toSTAB.cmd------
echo %1
echo %~n1
del transforms.trf
ffmpeg.exe -i "%1" -vf vidstabdetect -an -f null -
ffmpeg.exe -i "%1" -vf vidstabtransform  -r 30 -map_metadata 0 -q:v 23 -c:v h264_qsv  %~n1-toSTAB.mp4"
del transforms.trf
timeout /t 0
------

2. 動画ファイルをMP4ファイルにエンコード

toMP4.cmd------
echo %1
echo %~n1
ffmpeg -i "%1" -r 30 -map_metadata 0 -q:v 23 -c:v h264_qsv -b:v 3M "%~n1-toMP4.mp4"
timeout /t 2
------

3.  大量ファイルのMP4ファイルにエンコード

実行すると,filelist.cmdファイルが作成される,このファイルを実行して
エンコードが始まる

AlltoMP4.cmd------
echo off
echo rem FFmpeg > filelist.cmd
md H264_qsv
for %%a in (*.mp4) do echo ffmpeg -i %%a -map_metadata 0 -r 29.97 -c:v h264_qsv -b:v 6M .\H264_qsv\%%a >> filelist.cmd
timeout /t 0
------

2021年6月11日金曜日

よく使うffmpegのコマンドメモ

よく使うffmpegのコマンドメモ

1.  ファイル連結
ffmpeg -f concat -i file.txt  output.mp4

file.txt (ファイル内容)
file 1.mp4
file 2.mp4


2.   時間を指定してファイルを切り取り
ffmpeg -ss 0:0:1 -to 0:0:5 out.mp4 -i in.mp4
-t 00:00:50    指定時間から50秒の動画を切り取り、指定ない場合00:00:00から
-ss 00:00:10  最初の時間を指定
-to 00:00:50  終了の時間を指定
―t は切り取り動画の長さ
―to は動画のタイム時間

3.   ファイルのメタデータ削除する
ffmpeg -i in.mp4 -map_metadata -1 out.mp4


4.   クロップ-領域を指定して動画出力
ffmpeg -i in.mp4 -vf crop=482:180:44:397 out.mp4
クロップサイズw:クロップサイズh:座標x:座標y



5.  動画ファイルを連番画像に変換
ffmpeg -i in.mp4 -r 30 -q:v 1 image%04d.png


6.  複数の画像を動作に変換
ffmpeg -r 30 -i image%04d.png out.mp4
ffmpeg -r 30 -start_number 43 -i %04d.png out.mp4
ファイルのスタート番号は0001ではない場合-start_number 指定


7. 手ぶれ補正(手順は2回、古いビデオカメラに役立つ)
7-1. ffmpeg.exe -i in.mp4 -vf vidstabdetect -an -f null -
       transforms.trf  動作の分析ファイルが作成されます。
7-2. ffmpeg.exe -i in.mp4  -vf vidstabtransform  out.mp4


8.  一枚の写真でMP4動作作成
ffmpeg.exe -i image.JPG -i sound.mp3 -r 1 out.mp4


9.  Mp3 ファイル作成、アルバムアートを追加する
ffmpeg.exe -i audio.mp3 -i art.jpg -disposition:v:1 attached_pic -map 0 -map 1 -id3v2_version 3 outfile.mp3


10.  ffmpeg でインターレース解除
ffmpeg.exe -i in.mp4 -vf bwdif  out.mp4


11.  サウンドの入れ替え(source1の映像、source2の音声)
ffmpeg.exe -i in1.mp4 -i in2.mp4 -map 0:v:0 -map 1:a:0 -shortest out.mp4


12.  動画のサイズ変更 1280x720 から 720x404へ
自動で設定したいほうに -1 をセットする
ffmpeg -i in.mp4 -s 720x404 out.mp4
ffmpeg -i in.mp4 -vf scale=1280:-1 out.mp4
ffmpeg -i in.mp4 -vf scale=-1:720 out.mp4


13.  動画の音量を調整
ffmpeg -i in.mp4 -c:v copy -af "volume=0.5" out.mp4
ffmpeg -i in.mp4 -c:v copy -af "volume=6dB" out.mp4


14.  動画再生速度を調整
2倍
ffmpeg -i in.mp4 -vf setpts=PTS/2.0 -af atempo=2.0 out.mp4
0.5倍
ffmpeg -i in.mp4 -vf setpts=PTS/0.5 -af atempo=0.5 out.mp4


15. 動画を回転する
ffmpeg -i in.mp4 -vf transpose=2 -c:a copy out.mp4 
1 → 90度 時計まわりに回転
2 → 90度 時計反まわりに回転
3 → 90度 時計まわり回転後、上下を反転
0 → 90度 時計反まわり回転後、上下を反転

ffmpeg -i in.mp4 -vf "rotate=45*PI/180" out.mp4  (45°)

rotate と transpose の違い
transpose 1280X720 だと、90度回転すると 720X1280 になる、枠が回転する
rotate で90度と回転後は1280X720のままです、枠は回転しない

ffmpeg - i in.mp4 -vf vflip out.mp4  (上下ミラ)
ffmpeg - i in.mp4 -vf hflip out.mp4  (左右ミラ)


16. ファイルの最大サイズを指定
ffmpeg -i in.mp4 -fs 20M out.mp4


17. ffmpeg ストリーミング ダウンロード
ffmpeg -i url -c copy out.mp4


18. ffmpeg メタデータの追加・変更
ffmpeg -i in.mp4 -metadata comment="vid:xxxxxxx" out.mp4
-metadata key=value


19. ffmpeg h264_qsv
ffmpeg -i in.mp4 -c:v h264_qsv -b:v 3000k out.mp4 

20. ffmpeg h264_nvenc
ffmpeg -i in.mp4 -c:v h264_nvenc -b:v 3000k out.mp4 

21. ffmpeg h264_amf
ffmpeg -i in.mp4 -c:v h264_amf -b:v 3000k out.mp4 

ffmpeg -encoders
h264_nvenc          NVIDIA NVENC H.264 encoder (codec h264)
nvenc_h264          NVIDIA NVENC H.264 encoder (codec h264)
nvenc                   NVIDIA NVENC H.264 encoder (codec h264)
h264_amf             AMD AMF H.264 Encoder (codec h264)
h264_qsv              H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 
                            (Intel Quick Sync Video acceleration) (codec h264)

22. 動画ファイルを指定秒数で連続で分割する
ffmpeg -i in.mp4 -c:v copy -c:a copy -f segment -segment_time 58 out-%02d.mp4

23. メタデータをコピーする
ffmpeg -i in.mp4 -i -map_metadata 0 out.mp4


パッチファイルの例
for %%a in (*.mp4) do echo ffmpeg -i %%a -map_metadata 0 -r 29.97 -c:v h264_qsv -b:v 6M .\H264_qsv\%%a >> filelist.cmd

ffmpeg -i in0.mkv -i in1.mkv -map 1 -c copy \
# copies all global metadata from in0.mkv to out.mkv  
-map_metadata 0 \
# copies video stream metadata from in0.mkv to out.mkv
-map_metadata:s:v 0:s:v \
# copies audio stream metadata from in0.mkv to out.mkv
-map_metadata:s:a 0:s:a \
out.mkv

24. Aviutil FFmpeg 出力時のコマンド設定

-c:a aac
-q:v 23
-c:v h264_qsv
-b:v 3M 
-r 30
-map_metadata -1
-metadata comment="vid:free"

-b:v 6400k
-c:v h264_qsv
-r 29.97
-crf 23
-aspect "16:9"
-map_metadata 1
-metadata comment="vid:Running2022"
-profile main



25. ffmpeg DAR 指定 アスペクト比のみを変更する
-aspect 4:3

26.

x.  思い出したら追加します。








2019年11月27日水曜日

FFmpeg Mp3 ファイル作成、アルバムアートを追加する

FFmpeg Mp3 ファイル作成、アルバムアートを追加する。

ffmpeg.exe -i audio.mp3 -i art.jpg -disposition:v:1 attached_pic -map 0 -map 1 -id3v2_version 3 outfile.mp3


エンコードする前のファイル情報
Input #0, mp3, from 'audio.mp3':
  Metadata:
    encoder         : Lavf58.32.104
  Duration: 00:00:26.57, start: 0.025057, bitrate: 64 kb/s
    Stream #0:0: Audio: mp3, 44100 Hz, mono, fltp, 64 kb/s

エンコードした後のファイル情報
Input #0, mp3, from 'outfile.mp3':
  Metadata:
    encoder         : Lavf58.32.104
  Duration: 00:00:26.57, start: 0.025056, bitrate: 796 kb/s
    Stream #0:0: Audio: mp3, 44100 Hz, mono, fltp, 64 kb/s
    Stream #0:1: Video: png, rgb24(pc), 1600x2133 [SAR 1:1 DAR 1600:2133], 90k tbr, 90k tbn, 90k tbc (attached pic)
    Metadata:
      comment         : Other



lame 利用する場合のコマンド以下になります。
lame audio.mp3 --ti art.jpg outfile2.mp3

エンコードした後のファイル情報
Input #0, mp3, from 'outfile2.mp3':
  Metadata:
    encoder         : LAME 32bits version 3.100.1 (http://lame.sf.net)
    TLEN            : 26540
  Duration: 00:00:26.57, start: 0.025056, bitrate: 139 kb/s
    Stream #0:0: Audio: mp3, 44100 Hz, mono, fltp, 64 kb/s
    Metadata:
      encoder         : LAME3.100
    Side data:
      replaygain: track gain - 29.200001, track peak - unknown, album gain - unknown, album peak - unknown,
    Stream #0:1: Video: mjpeg (Baseline), yuvj420p(pc, bt470bg/unknown/unknown), 1600x2133 [SAR 1:1 DAR 1600:2133], 90k tbr, 90k tbn, 90k tbc (attached pic)
    Metadata:
      comment         : Other

追加に
lame audio.mp3 --ti art.jpg -s 11025 -a outfile21.mp3
モノラル -a
オーディオのサンプリング周波数 -s11025

ffmpeg.exe -i audio.mp3 -i art.jpg -disposition:v:1 attached_pic -map 0 -map 1 -id3v2_version 3 -ac 1 -ar 11025 outfile.mp3
モノラル -ac 1
オーディオのサンプリング周波数 -ar 11025

2022/05/21追加
ダウンロードサイト
https://www.rarewares.org/mp3-lame-bundle.php
Download win32 bundle(1032kB)
Download x64 bundle(1214kB)

https://www.gyan.dev/ffmpeg/builds/
latest release    version: 5.0.1    2022-04-07


END



2018年6月25日月曜日

FFmpeg  H.264でエンコードするコマンド

FFmpeg  H.264でエンコードするコマンド

すべてのファイルを H.264でエンコードするコマンド

echo off
for  %%a in (*.mp4) do ffmpeg -i %%a -r 29.97 -c:v libx264 -crf 23 -vf "transpose=2" .\new\%%a
pause

エンコードするファイルのリストを作成、最後にシャットダウンコマンドを追加します。
長時間エンコード後に、システムシャットダウンできます。
echo off
echo ''> filelist.cmd
md new
for %%a in (*.mp4) do echo ffmpeg -i %%a -r 29.97 -c:v libx264 -crf 23 .\new\%%a >> filelist.cmd
for %%a in (*.MTS) do echo ffmpeg -i %%a -r 29.97 -c:v libx264 -crf 23 -vf bwdif .\new\%%a >> filelist.cmd
echo shutdown /s /t 180 >> filelist.cmd
echo pause >> filelist.cmd
rem pause


ffmpeg でインターレース解除
-vf bwdif=mode=0:parity=-1:deint=1
-vf bwdif=0:-1:0

bwdif AVOptions:
  mode              <int>        ..FV..... specify the interlacing mode (from 0 to 1) (default send_field)
     send_frame                   ..FV..... send one frame for each frame
     send_field                   ..FV..... send one frame for each field
  parity            <int>        ..FV..... specify the assumed picture field parity (from -1 to 1) (default auto)
     tff                          ..FV..... assume top field first
     bff                          ..FV..... assume bottom field first
     auto                         ..FV..... auto detect parity
  deint             <int>        ..FV..... specify which frames to deinterlace (from 0 to 1) (default all)
     all                          ..FV..... deinterlace all frames
     interlaced                   ..FV..... only deinterlace frames marked as interlaced




GPUによりエンコード

H.264 and HEVC
NVENC - Hardware-Accelerated Video Encoding
ffmpeg.exe -i xxxx.mp4 -vcodec h264_nvenc -vf bwdif h264_nvenc.mp4

AMD(Advanced Media Framework)
ffmpeg.exe -i xxxx.mp4 -vcodec h264_amf -vf bwdif h264_amf.mp4

インテル クイック・シンク・ビデオ
ffmpeg.exe -i xxxx.mp4 -vcodec h264_qsv -vf bwdif h264_qsv.mp4







パッチファル、すべての.MP4,.MTS ファイルを探して、コマンドファイル(filelist.cmd)を作成します。作成したファイル(filelist.cmd)を実行すると、エンコードが始まります。

echo off
echo rem FFmpeg > filelist.cmd

md H264_qsv
for %%a in (*.mp4) do echo ffmpeg -i %%a -r 29.97 -c:v h264_qsv -b:v 12M .\H264_qsv\%%a >> filelist.cmd
for %%a in (*.MTS) do echo ffmpeg -i %%a -r 29.97 -c:v h264_qsv -b:v 12M -vf bwdif .\H264_qsv\%%a.mp4 >> filelist.cmd

rem md H264
rem for %%a in (*.mp4) do echo ffmpeg -i %%a -r 29.97 -c:v libx264 -crf 23 .\H264\%%a >> filelist.cmd
rem for %%a in (*.MTS) do echo ffmpeg -i %%a -r 29.97 -c:v libx264 -crf 23 -vf bwdif .\H264\%%a.mp4 >> filelist.cmd

rem md MP3
rem for %%a in (*.mp4) do echo ffmpeg -i %%a .\MP3\%%a.mp3 >> filelist.cmd

echo shutdown /s /t 180 >> filelist.cmd
echo pause >> filelist.cmd
echo shutdown /a >> filelist.cmd
echo pause >> filelist.cmd
rem pause