Sorry for my bad English. I am trying to use ffmpeg to convert some image to heic format. Most of them were succeeded, but some large jpeg (seems only jpeg, png will be okay) files not.
How can I improve my command to compatible all my images, so I can convert them automatically?
➜ ~ ffmpeg -i sample.jpg -crf 12 -preset placebo -pix_fmt yuv420p -f hevc bitstream.265
ffmpeg version 4.0 Copyright (c) 2000-2018 the FFmpeg developers
built with Apple LLVM version 9.1.0 (clang-902.0.39.1)
configuration: --prefix=/usr/local/Cellar/ffmpeg/4.0 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-gpl --enable-libmp3lame --enable-libx264 --enable-libx265 --enable-libxvid --enable-opencl --enable-videotoolbox --disable-lzma
libavutil 56. 14.100 / 56. 14.100
libavcodec 58. 18.100 / 58. 18.100
libavformat 58. 12.100 / 58. 12.100
libavdevice 58. 3.100 / 58. 3.100
libavfilter 7. 16.100 / 7. 16.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 1.100 / 5. 1.100
libswresample 3. 1.100 / 3. 1.100
libpostproc 55. 1.100 / 55. 1.100
Input #0, image2, from 'sample.jpg':
Duration: 00:00:00.04, start: 0.000000, bitrate: 5226869 kb/s
Stream #0:0: Video: mjpeg, yuvj444p(pc, bt470bg/unknown/unknown), 13333x4200, 25 tbr, 25 tbn, 25 tbc
Stream mapping:
Stream #0:0 -> #0:0 (mjpeg (native) -> hevc (libx265))
Press [q] to stop, [?] for help
[swscaler @ 0x7fd2e3006000] deprecated pixel format used, make sure you did set range correctly
x265 [info]: HEVC encoder version 2.7
x265 [info]: build info [Mac OS X][clang 9.0.0][64 bit] 8bit+10bit+12bit
x265 [info]: using cpu capabilities: MMX2 SSE2Fast LZCNT SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
x265 [error]: Picture width must be an integer multiple of the specified chroma subsampling
[libx265 @ 0x7fd2e2802a00] Cannot open libx265 encoder.
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
Conversion failed!
As it says, Picture width must be an integer multiple of the specified chroma subsampling
. For yuv420p, that's 2.
You can just drop one column, and if required, one row, off.
ffmpeg -i sample.jpg -vf crop='iw-mod(iw,2)':'ih-mod(ih,2)' -crf 12 -preset placebo -pix_fmt yuv420p -f hevc bitstream.265
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With