贡献者: addis
ffprobe -i 视频文件 -show_streams 或者 ffprobe -show_streams 视频文件。
-select_streams v 或 a,可以用 a:0 查看第一个音频流。要查看字幕流,用 s,数据流用 d,附件用 t
-show_streams 的输出中,codec 是编码格式,MP4 最常用的是 H264,高清视频也常用 H265。音频最常用 ACC
bit_rate(码率)是每个流每秒钟的平均比特数。一个 4GB 的两小时视频大概是 4.4Mbit/s,也就是 550kB/s,iPhone Xs max 录像大约是 1MB/s,录屏(886x1920px)大约 2MB/s(注意 MB 是 MByte)。
440kbit/s。
1MB/s 到 1.2MB/s。MP4 电影大约 0.6MB/s
ffmpeg -i input_video.mp4 -vn -acodec copy output_audio.mp3(出错,用 ffmpeg -i input.mp4 -vn -acodec copy output.aac
或者 ffmpeg -i input_video.mp4 -vn -acodec libmp3lame -q:a 0 output_audio.mp3)
ffmpeg -i input_video.mp4 -ss start_time -t duration -vf fps=1 output_%03d.jpg
ffmpeg -y -i 输入视频 -c copy 输出视频。这样的转换是完全无损的。
ffmpeg -i 输入视频 -c:v libx264 [-crf 23 或 -b:v 1M] -c:a copy 输出视频。
-c:v libx264 使用 H264 编码。-crf(Constant Rate Factor)用于控制转换质量,数值越小质量越高。-b:v 1M 用于指定码率(1 Mbps)(用 500k 表示 500 kbps),使用该选项会让程序无视 -crf 选项。-c:a copy 直接复制音频不做改动。
-preset slow 可以提高压缩率,-tune 可以进一步调节。
-profile:v baseline或main或high 也会有影响,默认为 high
ffmpeg -y -i input.mp4 -c:v libx264 -b:v 1M -pass 1 -an -f null /dev/null
ffmpeg -i input.mp4 -c:v libx264 -b:v 1M -pass 2 -c:a copy output.mp4
-threads 选项。
ffmpeg -ss 00:01:00 -i 输入视频.mp4 -t 00:2:00 -c copy 输出视频.mp4 会截取 输入视频.mp4 的 00:01:00 到 00:03:00(时长两分钟)。
ffmpeg -i 输入视频.mp4 -vf "transpose=1" -c:a copy 输出视频.mp4。其中 1 是顺时针,2 是逆时针,3 是旋转 180 度。
ffmpeg -i input.mp4 -vf "crop=w:h:x:y" -c:a copy output.mp4。单位是像素,其中 w,h,x,y 分别是要截取的宽度和高度,以及左离左边的距离,和离上边的距离。
-vf "transpose=...,crop=..."
srt 字幕(可以开启关闭的),用 ffmpeg -i input.mp4 -scodec mov_text -i input.srt -c:v copy -c:a copy output.mp4
ffmpeg -i input.mp4 -vf "subtitles=input.srt" output.mp4
ffmpeg -i input.mp4 -vf "pad=width=iw:height=ih+120:color=black, subtitles=input.srt:force_style='MarginV=100,Alignment=10'" output.mp4