Richex 最近的时间轴更新
Richex

Richex

V2EX 第 505676 号会员,加入于 2020-08-27 23:55:52 +08:00
Richex 最近回复了
@xinghen57 明白了

我猜测是 ffmpeg 没有对 PowerShell 做处理,更多的还是从 Linux 平台出发做的。

yt-dlp 的代码里面 WARNING 也确定是直接输出到 stderr:

https://github.com/yt-dlp/yt-dlp/blob/d5d1517e7d838500800d193ac3234b06e89654cd/yt_dlp/YoutubeDL.py#L1032

没有考虑 PowerShell 的 warning 等通道:

https://github.com/yt-dlp/yt-dlp/blob/d5d1517e7d838500800d193ac3234b06e89654cd/yt_dlp/YoutubeDL.py#L609-L611
我的理解是 ffprobe -i 'video.mp4' 在终端输出的那些信息 ffmpeg 官方认为只是辅助信息或者说是调试信息,并不作为程序输出,所以 exit 0 并且 stdout 是空算是正常情况。

或者将 ffprobe 当成一个“在终端'查看'文件信息”的工具,看起来好理解一点,在我看来这是 ffmpeg 的一种“选择”,自然也没有对错之分了。当然关于怎么输出应该交给官方了,我们在这讨论也起不到啥作用。

在我这里 ffprobe -i "in.mp4" -show_format > info.txt 命令的 exit code 为 0 ,你是说在你那边是 1 吗?

目前我还不是太理解你想要解决的问题,方便的话可以描述一下细节,或者“确定终端输出的 stream 号”是基于什么确定?

比如这个问题:如果在终端看到一段输出结果,怎么确定是 stdout ,或 stderr ,还是 warning ?

ffmpeg 已经将对应信息分别输出到 stdout, stderr 和 warning 这是已经确定的,应该怎么理解“怎么确定”?

我感觉 OP 目的好像是想要从 stderr 中读取信息的意思?
看起来 ffmpeg 就是这么设计的吧,如果需要输出到 stdout 除了重定向也可以试着找一下官方提供的相关参数,例如:

ffprobe -i "in.mp4" -show_format > info.txt
ffprobe -i "in.mp4" -show_format -of json > info.json

从你的问题上来看,程序同时输出 stdout 和 stderr 是很平常的事情,所以如果你的问题是怎么确认终端输出是 stdout 还是 stderr 的话,个人感觉这个问题不太成立。

但其实绝大部分程序都会遵守 exit code ,即 0 是正常执行完成,非 0 异常,实际测试 ffmpeg 也是这样,
所以如果只是想知道是否执行成功其实判断 exit code 就足够了。而程序执行成功后和失败后的输出也是可预期的,判断一下 exit code 再从两个输出中根据需要读取就好了。
和 Linux 一样可以用 echo $?

[Imgur]( https://imgur.com/ClJK2sn)
先有一个整体的框架,然后完善细节,核心还是多练,各个知识点都掌握熟练。用 Vue 写了个 demo 可以看看
https://stackblitz.com/edit/vitejs-vite-p6cfhu?file=src%2FApp.vue
我也遇到过 diskpart 没用的情况,可以试试使用 Optimize-VHD ,记得先停掉 WSL2 。

Optimize-VHD -Path c:\test\dynamic.vhdx -Mode Full

注意 Optimize-VHD 命令只能在 PowerShell 中使用并且确保 Windows 打开了 Hyper-V 功能。
168 天前
回复了 snow668 创建的主题 DNS DNS 劫持
补充:毕竟人家也不是靠这类非核心功能吃饭,按照国内产商的逻辑通常都是能用就行,再怎么费劲一个 DNS 劫持功能也做不出花来,但稍微多花点功夫做做广告至少是实打实能吃上饭的。
168 天前
回复了 snow668 创建的主题 DNS DNS 劫持
有没有一种可能是 APP 的 DNS 劫持功能不够完善或者技术落后?或者说是以大陆的标准判定有没有劫持?众所周知大陆的 DNS 和 v 普遍用的互联网 DNS 解析结果并不完全一致。
以上只是提出一种猜测,仅供参考,我不是这类专业的。
用上就离不开了,几个项目跑公司服务器上,自己电脑空出大量资源不要太舒服,还不用每次开机或者几个项目切换的时候重新启动 dev 环境。
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2794 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 13ms · UTC 06:38 · PVG 14:38 · LAX 23:38 · JFK 02:38
Developed with CodeLauncher
♥ Do have faith in what you're doing.