ffmpeg - ffmpeg:无法打开 libx265 编码器。初始化输出流 0:0 时出错——打开输出流 #0:0 的编码器时出错
问题描述
对不起,我的英语不好。我正在尝试使用 ffmpeg 将某些图像转换为 heic 格式。大部分都成功了,但是一些大的jpeg(好像只有jpeg,png就可以了)文件不行。
如何改进命令以兼容所有图像,以便自动转换它们?
➜ ~ 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!
解决方案
正如它所说,Picture width must be an integer multiple of the specified chroma subsampling
. 对于 yuv420p,这是 2。
您可以只删除一列,如果需要,删除一行。
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
推荐阅读
- c++ - 通过单击按钮显示和隐藏堆栈面板 [Visual Studios 2019 for C++]
- javascript - 如何防止美化扩展格式化内联 Javascript?
- amazon-web-services - AWS iot boto3 - 如何获得附加到事物的证书?
- java - 如何将 ConcurrentHashMap.merge() 与共享的 AtomicInteger 一起使用
- c# - 生成了新的迁移,但未应用于 Db
- android - 如何增加android volley请求超时
- node.js - 如何插入循环以检查数组中的每个值[mongoDB,Node.js]
- azure-devops - Azure DevOps - 更改原因
- python - 如何在 Reportlab 中引用模型
- pandas - pandas - 根据不是特定的索引整数和列值设置值