我有 ffmpeg=4.1.3,我想将常规 jpg 文件转换为 nv12 (yuv)。我使用了以下命令:
ffmpeg -y -i image.jpg -vf -pix_fmt nv12 out.yuv
并得到:Unable to find a suitable output format for 'nv12'
我确认格式存在:
ffmpeg -pix_fmts|grep nv
ffmpeg version 4.1.3 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 7.3.0 (crosstool-NG 1.23.0.449-a04d0)
configuration: --prefix=/home/shani/anaconda2 --cc=/home/conda/feedstock_root/build_artifacts/ffmpeg_1556785800657/_build_env/bin/x86_64-conda_cos6-linux-gnu-cc --disable-doc --disable-openssl --enable-avresample --enable-gnutls --enable-gpl --enable-hardcoded-tables --enable-libfreetype --enable-libopenh264 --enable-libx264 --enable-pic --enable-pthreads --enable-shared --enable-static --enable-version3 --enable-zlib --enable-libmp3lame
libavutil 56. 22.100 / 56. 22.100
libavcodec 58. 35.100 / 58. 35.100
libavformat 58. 20.100 / 58. 20.100
libavdevice 58. 5.100 / 58. 5.100
libavfilter 7. 40.101 / 7. 40.101
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 3.100 / 5. 3.100
libswresample 3. 3.100 / 3. 3.100
libpostproc 55. 3.100 / 55. 3.100
I.... = Supported Input format for conversion
.O... = Supported Output format for conversion
IO... nv12 3 12
IO... nv21 3 12
..... nv16 3 16
..... nv20le 3 20
..... nv20be 3 20
答案1
引入-vf
一个过滤器,并期望以下参数,请参见此处过滤指南。在这种情况下,它会使用-pix_fmt
,并留下nv12
作为输出 URL。
ffmpeg 命令行中紧接着的
-vf
是 filtergraph 描述。此 filtergraph 可能包含多个链,每个链可能包含多个过滤器。
尝试:
ffmpeg -y -i image.jpg -pix_fmt nv12 out.yuv
如果您想要提供过滤器,则需要向中添加一个参数-vf
,例如以下将分辨率降低到输入的 50%。
ffmpeg -y -i image.jpg -vf scale=iw/2:-1 -pix_fmt nv12 out.yuv