ffmpeg 无法识别 x265 选项
ffmpeg won't recognize x265 options
我正在尝试使用 ffmpeg 的内置 x265
库通过 h.265
codec 处理 .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'
我正在尝试使用 ffmpeg 的内置 x265
库通过 h.265
codec 处理 .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'