ffmpeg 无法识别 x265 选项

ffmpeg won't recognize x265 options

我正在尝试使用 ffmpeg 的内置 x265 库通过 h.265codec 处理 .VOB 文件。

我从 ffmpeg 文档中了解到的是:

-c:v libx265 告诉 ffmpeg 对视频流使用 h.265 编解码器

-x265-params 将选项传递给 x265 编码器而不是 ffmpeg

但是每当尝试 运行 命令时,ffmpeg 似乎都不会 recognize/pass x265 的选项。

报错

无法识别选项“-y4m”。<br> 拆分参数列表时出错:找不到选项

这是为什么?

这是命令(编辑间距):

C:\ffmpeg (20170123-e371f03-win64-static)\bin> 
   ffmpeg -i concat:'input1.VOB'\'input.VOB'
   -map 0:v -map 0:a -r 24000/1001 -f yuv4mpegpipe 
   -c:v libx265 -x265-params 
   --y4m --fps 24000/1001 -p veryslow --open-gop --bframes 16 
   --b-p yramid --bitrate 2500 --rect --amp --aq-mode 3 --no-sao --qcomp 0.75 
   --no-strong -intra-smoothing --psy-rd 1.6 --psy-rdoq 5.0 --rdoq-level 1 
   --tu-inter-depth 4 --tu-intra-depth 4 --ctu 32 --max-tu-size 16 --pass 1 
   --slow-firstpass --stats v. stats --sar 1 --range full 'E:\output.hevc'




ffmpeg version N-83195-ge371f03 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 5.4.0 (GCC)
  configuration: --enable-gpl --enable-version3 --enable-cuda --enable-cuvid --e
nable-d3d11va --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --
enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv
--enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-li
bfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug -
-enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enabl
e-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-li
bsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolam
e --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx
 --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable
-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-decklink --ena
ble-zlib
  libavutil      55. 44.100 / 55. 44.100
  libavcodec     57. 75.100 / 57. 75.100
  libavformat    57. 63.100 / 57. 63.100
  libavdevice    57.  2.100 / 57.  2.100
  libavfilter     6. 69.100 /  6. 69.100
  libswscale      4.  3.101 /  4.  3.101
  libswresample   2.  4.100 /  2.  4.100
  libpostproc    54.  2.100 / 54.  2.100
Unrecognized option '-y4m'.
Error splitting the argument list: Option not found

这不是正确的语法。使用

-x265-params "y4m=1:fps=24000/1001:p=veryslow:...."

"--y4m" 不是 x265 的参数。首先,它不应该在那里。它是进入 yuv4mpegpipe 的输出容器。在您的语法中,错误是您的编解码器。 x265 不知道 yuv4mpegpipe 是什么...

ffmpeg -i concat:'input1.VOB'\'input.VOB'
-map 0:v -map 0:a -r 24000/1001 -f yuv4mpegpipe 
   -c:v libx265(remove this)-x265-params(remove this)and change it to this "yuv4" -o "input1.VOB.output.y4m" 

擦除后写这个b4 x265-params --y4m

ffmpeg.exe -i "input1.VOB.output.y4m"<<-this is the output file that went into the yuv4mpegpipe that you want converted to HEVC)(y4m is like mp4 mkv avi mov) --c:v libx265 --x265-params -->>> --y4m --fps 24000/1001 -p veryslow --open-gop --bframes 16 
   --b-pyramid --bitrate 2500 --rect --amp --aq-mode 3 --no-sao --qcomp 0.75 
   --no-strong-intra-smoothing --psy-rd 1.6 --psy-rdoq 5.0 --rdoq-level 1 
   --tu-inter-depth 4 --tu-intra-depth 4 --ctu 32 --max-tu-size 16 --pass 1 
   --slow-firstpass --stats v. stats --sar 1 --range full 'E:\output.hevc'

如果我要写这个,它会是这样的:

ffmpeg.exe -i concat:'input1.VOB'\'input.VOB' --map 0,1 --c:v yuv4 --s 3840x2160 --r 24000/1001 --f yuv4mpegpipe  --pix-fmt yuv444p16le -o "output-yuv444p16le.y4m"

ffmpeg.exe -i "yuv444p16le.y4m" --fps 24000/1001 --p veryslow --c:v libx265 --x265-params --open-gop --bframes 16 --b-pyramid --bitrate 2500 --rect --amp  --aq-mode 3 --no-sao --qcomp 0.75 --no-strong-intra-smoothing --psy-rd 1.6 --psy-rdoq 5.0 --rdoq-level 1 --tu-inter-depth 4 --tu-intra-depth 4 --ctu 32 --max-tu-size 16 --pass 1 --slow-firstpass --stats v. stats --sar 1 --range full -o E:\output_yuv444p16le.hevc'