低带宽视频服务器如何选择ffmpeg编解码器和容器:
您可能想要下载、安装和使用Handbrake(用于 Windows 64 位)和WinFF,以了解要使用的设置。
Windows 用户使用 NUL 代替 /dev/null 和 ^ 代替 \
非 Windows 用户使用 /dev/null 代替 NUL 和 \ 代替 ^
ffmpeg -y -i "1.mkv" -c:v libx265 -b:v 4M -pass 1 -an -f matroska NUL &&^
ffmpeg -i "1.mkv" -c:v libx265 -b:v 4M -pass 2 -c:a aac -b:a 128k "output.mkv"
rem
和
一样
ffmpeg -y -i "1.mkv" -c:v libx265 -b:v 4M -pass 1 -an -f matroska NUL && ffmpeg -i "1.mkv" -c:v libx265 -b:v 4M -pass 2 -c:a aac -b:a 128k "output.mkv"
rem
您可能想要比较恒定速率因子 (CRF) 与两次 ABR 以及 265 与 264。mp4 容器中的 720p、具有 4Mbps 最大比特率的 H264 和 AAC 音频可能是您的最佳选择。 CRF265 制作最小的文件。
从 1 分钟开始制作一个 15 秒的视频:
ffmpeg -ss 00:01:00 -y -i "1.mkv" -c:v libx264 -b:v 4M -filter:v scale=1280:720 -preset slow -c:a copy -t 00:00:15 "outputSlow264720p.mp4" &&^
ffmpeg -ss 00:01:00 -y -i "1.mkv" -c:v libx264 -b:v 4M -f matroska -c:a copy -t 00:00:15 "outputSlow264.mkv" &&^
ffmpeg -ss 00:01:00 -y -i "1.mkv" -c:v libx265 -crf 28 -f matroska -c:a copy -t 00:00:15 "outputCRF265.mkv" &^
ffmpeg -ss 00:01:00 -y -i "1.mkv" -c:v libx265 -b:v 4M -f matroska -c:a copy -t 00:00:15 "output4M265.mkv" &^
ffmpeg -ss 00:01:00 -y -i "1.mkv" -c:v libx264 -preset slow -crf 22 -f matroska -c:a copy -t 00:00:15 "outputCRF264Slow.mkv" &^
ffmpeg -ss 00:01:00 -y -i "1.mkv" -c:v libx264 -b:v 4M -f matroska -c:a copy -t 00:00:15 "output4M264.mkv"
rem
请参阅 https://trac.ffmpeg.org/wiki/Encode/H.265 这些增益在 1080p 及更高的分辨率下最为明显。
请参阅https://trac.ffmpeg.org/wiki/Encode/H.264 CRF:这是大多数用途推荐的速率控制模式。
见https://programminghistorian.org/en/lessons/introduction-to-ffmpeg
见https://opensource.com/article/17/6/ffmpeg-convert-media-file-formats
见https://davidhide.com/2019/02/03/compressing-audio-with-ffmpeg-and-powershell/
见https://slhck.info/video/2017/02/24/crf-guide.html
PowerShell 在一行中替换 ^ 和 && :2 次通过 h265.mkv 和 h264.mp4 输出
ffmpeg -ss 00:01:00 -y -i "1.mkv" -c:v libx265 -b:v 4M -pass 1 -an -f matroska -t 00:00:15 NUL; if($?) {ffmpeg -ss 00:01:00 -y -i "1.mkv" -c:v libx265 -b:v 4M -pass 2 -c:a copy -t 00:00:15 "output.mkv"}
ffmpeg -ss 00:01:00 -y -i "1.mkv" -c:v libx264 -b:v 4M -pass 1 -an -f mp4 -t 00:00:15 NUL; if($?) {ffmpeg -ss 00:01:00 -y -i "1.mkv" -c:v libx264 -b:v 4M -pass 2 -c:a copy -t 00:00:15 "output.mp4"}
rem
PowerShell 分两行:720p h264.mp4 2-pass 输出
ffmpeg -ss 00:01:00 -i "1.mkv" -c:v libx264 -b:v 4M -filter:v scale=1280:720 -preset slow -c:a copy -t 00:00:15 -pass 1 output.mp4
ffmpeg -ss 00:01:00 -y -i "1.mkv" -c:v libx264 -b:v 4M -filter:v scale=1280:720 -preset slow -c:a copy -t 00:00:15 -pass 2 output.mp4
rem
预设 - 见https://trac.ffmpeg.org/wiki/Encode/H.264
预设是一组选项,可提供一定的编码速度与压缩比。较慢的预设将提供更好的压缩(压缩是每个文件大小的质量)。这意味着,例如,如果您以特定文件大小或恒定比特率为目标,您将使用较慢的预设获得更好的质量。同样,对于恒定质量编码,您只需选择较慢的预设即可节省比特率。
使用您有耐心的最慢预设。按速度降序排列的可用预设是:
ultrafast
superfast
veryfast
faster
fast
medium – default preset
slow
slower
veryslow