gpt4 book ai didi

powershell - 忽略 Powershell 中 FFMPEG 控制台输出的特定警告

转载 作者:行者123 更新时间:2023-12-04 23:02:36 27 4
gpt4 key购买 nike

在向我的 FFmpeg 控制台输出发送垃圾邮件时遇到一些问题,希望有人能提供帮助。

我在使用分段的同时同时输出到多个文件,为了保持每个部分同步而没有音频漂移,我需要将所有内容设置为恒定的整数帧速率。问题是当使用 -framerate 和整数帧速率(复制帧)时,您会在控制台中不断收到警告“过去持续时间 0.x 太大”。

我已经尝试了几乎所有在线警告的“解决方案”,但每个都有它的缺点。我发现简单地使用 -loglevel 错误使控制台静音并使用 -stats 保留一定程度的详细程度是迄今为止最好的解决方案,但是我看不到我当前在控制台中写入的段是高度恼人的。没有日志级别选项可以专门使警告静音,并且根据我的大量实验,没有其他方法可以有机地防止警告在我的用例中向控制台发送垃圾邮件。

进来 Powershell(我使用的是 CMD),我希望我能捕捉到警告并使用某种过滤器从控制台输出中省略它。我试过在我的命令结束时抛出这个:

| Where-Object {$_ -notcontains 'Past'}

但没有运气。我对Powershell非常缺乏经验,所以请原谅我,据我所知,您希望在“$_”之后有某种对象,但我认为FFmpeg不会将文本与标题或类似的东西分开,所以我不太确定要做什么放在那里。

无论如何,任何帮助将不胜感激。

完整命令(没有控制台抑制):
ffmpeg -y -hide_banner -thread_queue_size 9999 -indexmem 9999 -guess_layout_max 0 -f dshow -rtbufsize 2147.48M `
-i audio="Analog (1+2) (RME Fireface UC)" `
-thread_queue_size 9999 -indexmem 9999 -guess_layout_max 0 -f dshow -rtbufsize 2147.48M `
-i audio="ADAT (5+6) (RME Fireface UC)" `
-thread_queue_size 9999 -indexmem 9999 -guess_layout_max 0 -f dshow -video_size 3840x2160 -rtbufsize 2147.48M `
-framerate 60 -pixel_format nv12 -i video="Video (00 Pro Capture HDMI 4K+)":audio="ADAT (3+4) (RME Fireface UC)" `
-thread_queue_size 9999 -indexmem 9999 -guess_layout_max 0 -f dshow -rtbufsize 2147.48M `
-i audio="SPDIF/ADAT (1+2) (RME Fireface UC)" `
-thread_queue_size 9999 -indexmem 9999 -r 25 -f lavfi -rtbufsize 2147.48M -i color=c=black:s=50x50 `
-map 4,0 -map 0 -c:v libx264 -r 25 -rc-lookahead 50 -forced-idr 1 -sc_threshold 0 -flags +cgop `
-force_key_frames "expr:gte(t,n_forced*2)" -preset ultrafast -pix_fmt nv12 -b:v 16K -minrate 16K -maxrate 16K -bufsize 16k `
-c:a aac -ar 44100 -b:a 384k -ac 2 -vf "fps=25" -af "aresample=async=250" -vsync 1 -ss 00:00:01.479 `
-max_muxing_queue_size 9999 -f segment -segment_time 600 -segment_wrap 9 -reset_timestamps 1 `
-segment_format_options max_delay=0 C:\Users\djcim\Videos\PC\Theirs\TPC%02d.ts `
-map 4,1 -map 1 -c:v libx264 -r 25 -rc-lookahead 50 -forced-idr 1 -sc_threshold 0 -flags +cgop `
-force_key_frames "expr:gte(t,n_forced*2)" -preset ultrafast -pix_fmt nv12 -b:v 16K -minrate 16K -maxrate 16K -bufsize 16k `
-c:a aac -ar 44100 -b:a 384k -ac 2 -vf "fps=25" -af "aresample=async=250" -vsync 1 -ss 00:00:00.850 `
-max_muxing_queue_size 9999 -f segment -segment_time 600 -segment_wrap 9 -reset_timestamps 1 `
-segment_format_options max_delay=0 C:\Users\djcim\Videos\PC\Soundboard\SPC%02d.ts `
-map 2:0,2:1 -map 2:1 -c:v h264_nvenc -r 60 -rc-lookahead 120 -forced-idr 1 -strict_gop 1 -sc_threshold 0 -flags +cgop `
-force_key_frames "expr:gte(t,n_forced*2)" -preset: llhp -pix_fmt nv12 -b:v 250M -minrate 250M -maxrate 250M -bufsize 250M `
-c:a aac -ar 44100 -b:a 384k -ac 2 -af "atrim=0.086, asetpts=PTS-STARTPTS, aresample=async=250" -vsync 1 `
-max_muxing_queue_size 9999 -f segment -segment_time 600 -segment_wrap 9 -reset_timestamps 1 `
-segment_format_options max_delay=0 C:\Users\djcim\Videos\PC\PC\PC%02d.ts `
-map 4,3 -map 3 -c:v h264_nvenc -r 25 -rc-lookahead 50 -forced-idr 1 -strict_gop 1 -sc_threshold 0 -flags +cgop `
-force_key_frames "expr:gte(t,n_forced*2)" -preset: llhp -pix_fmt yuv420p -b:v 16K -minrate 16K -maxrate 16K -bufsize 16K `
-c:a aac -ar 44100 -b:a 384k -ac 2 -vf "fps=25" -af "pan=mono|c0=c0, adelay=120|120, aresample=async=250" -vsync 1 `
-ss 00:00:00.065 -max_muxing_queue_size 9999 -f segment -segment_time 600 -segment_wrap 9 -reset_timestamps 1 `
-segment_format_options max_delay=0 C:\Users\djcim\Videos\PC\Camera\CPC%02d.ts

最佳答案

正如 Gyan 在我原来的问题的评论中所建议的那样 - FFmpeg 自 2018 年 7 月开始构建,将警告发送到比默认级别更高的日志级别。

更新后警告消息不再在我的控制台中发送垃圾邮件。

关于powershell - 忽略 Powershell 中 FFMPEG 控制台输出的特定警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52194796/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com