我想使用新的编解码器 x265 (libx265) 来编码我的视频集。
为此,我在 linux 下创建了一个可爱的 bash 脚本,它通常运行良好!但有一点很奇怪:
我禁止ffmpeg的输出以我自己的方式回显。使用 x264(“旧”的)一切正常。但是一旦我使用 x265,我的终端上总是会得到这种输出:
x265 [info]: HEVC encoder version 1.7
x265 [info]: build info [Linux][GCC 5.1.0][64 bit] 8bpp
x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 Cache64
x265 [info]: Main profile, Level-2.1 (Main tier)
x265 [info]: Thread pool created using 2 threads
x265 [info]: frame threads / pool features : 1 / wpp(5 rows)
x265 [info]: Coding QT: max CU size, min CU size : 64 / 8
x265 [info]: Residual QT: max TU size, max depth : 32 / 1 inter / 1 intra
x265 [info]: ME / range / subpel / merge : hex / 57 / 2 / 2
x265 [info]: Keyframe min / max / scenecut : 25 / 250 / 40
x265 [info]: Lookahead / bframes / badapt : 20 / 4 / 2
x265 [info]: b-pyramid / weightp / weightb / refs: 1 / 1 / 0 / 3
x265 [info]: AQ: mode / str / qg-size / cu-tree : 1 / 1.0 / 64 / 1
x265 [info]: Rate Control / qCompress : CRF-28.0 / 0.60
x265 [info]: tools: rd=3 psy-rd=0.30 signhide tmvp strong-intra-smoothing
x265 [info]: tools: deblock sao
Run Code Online (Sandbox Code Playgroud)
这是我使用 ffmpeg 编码视频的方式:
ffmpeg -i /input/file -c:v libx265 -c:a copy -loglevel quiet /output/file.mp4 <>/dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)
我以为
<>/dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)
和
-loglevel quiet
Run Code Online (Sandbox Code Playgroud)
会这样做,但显然我错了。
我怎么解决这个问题?
谢谢你的帮助!
小智 11
看起来 ffmpeg 没有告诉 x265 编码器使用您告诉 ffmpeg 使用的日志级别。因此,如果您希望 ffmpeg 和 ffmpeg 中的 x265 编码器安静,则需要为它们设置日志级别选项。
如果您有一个如下所示的 ffmpeg 命令:
ffmpeg -loglevel error -stats -i "inputfile.xyz" -c:v libx265 -x265-params parameter1=value:parameter2=value outputfile.xyz
Run Code Online (Sandbox Code Playgroud)
您可以将 log-level=error 选项添加到 x265-params 列表中,如下所示:
ffmpeg -loglevel error -stats -i "inputfile.xyz" -c:v libx265 -x265-params log-level=error:parameter1=value:parameter2=value ....
Run Code Online (Sandbox Code Playgroud)