ffmpeg不会识别x265选项

时间:2017-01-31 04:27:38

标签: encoding ffmpeg h.265 vob

我正在尝试使用ffmpeg的内置x265库来通过.VOB编解码器处理h.265个文件。

我从ffmpeg文档中了解到:

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

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

但是每当尝试运行命令时,ffmpeg似乎都没有识别/将选项传递给x265。

它给出错误

Unrecognized option '-y4m'.
Error splitting the argument list: Option not found

这是为什么?

这里是命令(编辑的间距):

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

2 个答案:

答案 0 :(得分:1)

这不是正确的语法。使用

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

答案 1 :(得分:-2)

“ - 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" 

在删除--y4m

后写下这个b4 x265-params
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'