I'm implementing a video transcoding pipeline using FFmpeg with the libsvtav1 encoder to convert H.264 videos to AV1. However, I'm seeing unexpected results: the output files are larger than the originals, even when using CRF values (24 and 30) that should theoretically reduce file size.
Current Implementation:
# Attempt 1
ffmpeg -i input.mp4 -c:v libsvtav1 -crf 24 -y output_crf24.mp4
# Attempt 2
ffmpeg -i input.mp4 -c:v libsvtav1 -crf 30 -y output_crf30.mp4
Example Input vs Output: Original H.264 (input.mp4):
Resolution: 1280x960
Bitrate: ~1463 kb/s
Codec info (via ffprobe):
Stream #0:0: Video: h264 (High), yuv420p(progressive), 1280x960, 1460 kb/s, 30 fps
AV1 Encoded Output (CRF 24):
Bitrate: ~1503 kb/s
Codec info:
Stream #0:0: Video: av1 (Main), yuv420p, 1280x960, 1501 kb/s, 30 fps
encoder: Lavc62.0.101 libsvtav1
What I've Tried: Varying CRF values: 24 and 30
Using FFmpeg’s default preset settings (no additional tuning or options)