ffmpeg: Cannot open libx265 encoder. Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0
Asked Answered
P

1

8

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!
Prowess answered 16/5, 2018 at 13:12 Comment(1)
related: askubuntu.com/a/1108325/17060Maiduguri
S
7

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
Superphysical answered 16/5, 2018 at 13:59 Comment(1)
It didn't work for me right away. I had to escape the commas: crop='iw-mod(iw\,2):ih-mod(ih\,2)'Darmit

© 2022 - 2024 — McMap. All rights reserved.