Cam*_*une 5 ffmpeg stderr pipe buffer progress-bar
如果不从源代码进行编辑和重新编译ffmpeg,如何隐藏开始编码时打印的许多行中的一些,而不隐藏编码时每秒更新一次的进度条?
进度条:
\nframe=14759 fps=3226 \xe2\x80\xa6 bitrate=8509.2kbits/s speed= 108x
典型命令:
\nffmpeg -hide_banner in.mov out.mp4
典型噪音:十几行或更多行,例如
\n Duration: 00:59:19.45, start: 0.257200, bitrate: 9623 kb/s\n Stream #0:0[0x1bf]: Data: dvd_nav_packet\n Stream #0:1[0x1e0]: Video: mpeg2video (Main), yuv420p(tv, smpte170m, bottom first), 720x480 [SAR 8:9 DAR 4:3], 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc\n Stream #0:2[0xa0]: Audio: pcm_dvd, 48000 Hz, stereo, s16, 1536 kb/s\nStream mapping:\n Stream #0:1 -> #0:0 (copy)\n Stream #0:2 -> #0:1 (pcm_dvd (native) -> ac3 (native))\nRun Code Online (Sandbox Code Playgroud)\n这些尝试隐藏Stream,但也隐藏进度条(因为它永远不会到达egrep,因为\\r而不是\\n?):
stdbuf -i0 -o0 -e0 ( ffmpeg \xe2\x80\xa6 2>&1 ) | grep -v Stream
unbuffer ffmpeg \xe2\x80\xa6 | unbuffer grep -v Stream
用本质上无缓冲的东西替换 grep ?
\nsed -u /Stream/d也隐藏进度条。
相关:https ://stackoverflow.com/questions/3465619/how-to-make-output-of-any-shell-command-unbuffered
\n\n小智 7
ffmpeg -v quiet -stats -i in.mov out.mp4
Run Code Online (Sandbox Code Playgroud)
无需使用-hide_banner标志。
将日志级别降低到warning/24但隐藏横幅并明确启用统计信息。
ffmpeg -hide_banner -v warning -stats -i in.mov out.mp4
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5808 次 |
| 最近记录: |