Hi,
I'm trying to make a DVD with a still image (1:1 aspect ratio) and
audio, the only issue is that the video is a bit blocky even after
setting the highest bitrate available.
The command used:
`ffmpeg -i image.jpg -i audiofile.wav -f dvd -muxrate 10080k
-packetsize 2048 -pix_fmt yuv420p -r 24000/1001 -codec:v mpeg2video -g
18 -b:v 9800k -maxrate:v 9800k -minrate:v 9800k -bufsize:v 1835008 -vf
"scale=720:576:flags=lanczos:force_original_aspect_ratio=decrease,pad=720:576:(ow-iw)/2:(oh-ih)/2"
-codec:a pcm_dvd output.mpg`
FFmpeg version (latest from Arch repos):
`ffmpeg version n6.1.1 Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 13.2.1 (GCC) 20230801
configuration: --prefix=/usr --disable-debug --disable-static
--disable-stripping --enable-amf --enable-avisynth --enable-cuda-llvm
--enable-lto --enable-fontconfig --enable-frei0r --enable-gmp
--enable-gnutls --enable-gpl --enable-ladspa --enable-libaom
--enable-libass --enable-libbluray --enable-libbs2b --enable-libdav1d
--enable-libdrm --enable-libfreetype --enable-libfribidi
--enable-libgsm --enable-libharfbuzz --enable-libiec61883
--enable-libjack --enable-libjxl --enable-libmodplug
--enable-libmp3lame --enable-libopencore_amrnb
--enable-libopencore_amrwb --enable-libopenjpeg --enable-libopenmpt
--enable-libopus --enable-libplacebo --enable-libpulse
--enable-librav1e --enable-librsvg --enable-librubberband
--enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt
--enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libv4l2
--enable-libvidstab --enable-libvmaf --enable-libvorbis
--enable-libvpl --enable-libvpx --enable-libwebp --enable-libx264
--enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid
--enable-libzimg --enable-nvdec --enable-nvenc --enable-opencl
--enable-opengl --enable-shared --enable-version3 --enable-vulkan
libavutil 58. 29.100 / 58. 29.100
libavcodec 60. 31.102 / 60. 31.102
libavformat 60. 16.100 / 60. 16.100
libavdevice 60. 3.100 / 60. 3.100
libavfilter 9. 12.100 / 9. 12.100
libswscale 7. 5.100 / 7. 5.100
libswresample 4. 12.100 / 4. 12.100
libpostproc 57. 3.100 / 57. 3.100`
I also played around with some hidden options but they didn't seem to
make much difference:
`-trellis 1 -dia_size 2 -pre_dia_size 2 -precmp rd -cmp rd -subcmp rd
-mbd rd -last_pred 3 -vqmin 0 -vqmax 0 -qmin 1 -qmax 1 -dc 11 -vstrict
0 -mpv_flags '+mv0+cbp_rd+qp_rd' -lmin 1`
You do not need a high bitrate for still images. Just use the defaults!
Higher bitrates are only necessary for video with lots of movement. Use
dedicated imaging software to scale the images to the size you need
first. For example use Imagemagick or The Gimp for this, they have much
better image scaling algorithms giving you a high quality scaled image.
Then use those already scaled images as input for your video. This will
most likely give a much better result. And a simpler commandline as you
can completely omit the scale filter. So the only thing ffmpeg has to do
is to convert your picture to the specified yuv colorspace.
The ffmpeg scale filter is according to the documentation a "video
scaling filter" meaning it is designed to scale moving pictures, not
still pictures, For video some blocking or blurring often does not hurt
or even benefits the perceived quality.
_______________________________________________
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-user
To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".