ffmpeg - 我们指定使用 ffmpeg 的 Mozilla、MacOS 和 Safari 版本有什么区别?
问题描述
我遇到了这段代码,用于下载 m3u8 播放列表并将它们连接到 mkv 文件中:
$ ffmpeg -user_agent "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/601.7.8 (KHTML, like Gecko) Version/9.1.3 Safari/537.86.7" -i https://devstreaming-cdn.apple.com/videos/wwdc/2019/901myoscpux9y7nry55/901/hls_vod_mvp.m3u8 -c copy pd.mkv
我的问题是关于脚本的部分:
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/601.7.8 (KHTML, like Gecko) Version/9.1.3 Safari/537.86.7"
这些似乎是非常古老的数字。例如,Catalina 是 10.15.3。不知道哪个是最新的 Mozilla,但 Safari 现在是 13.0.5
只是想知道如果版本旧有什么不同,或者我们是否应该更新代码以指定 Mac OS、Mozilla、Webkit 和 Safari 的新版本。
有人能解释一下意义吗?
解决方案
你应该谷歌“用户代理”来看看它的确切用途。
Ffmpeg 不会对该值做任何事情。它只是作为 http 标头发送到服务器。服务器可能会也可能不会对它做任何事情。它不需要 99.999% 的时间。一些服务器会根据用户代理给出不同的响应以防止网站抓取,但同样,这种情况很少见。如果删除它,ffmpeg 可能仍然可以工作并产生相同的输出。
推荐阅读
- http - 什么是 Web 服务器端超时?
- symfony - 导入 PDF 并使用 Symfony 签名
- vba - VBA:仅将可见行作为值复制到另一个工作簿
- javascript - 理解 React Router 嵌套子路由
- redis - 单分片 Redis Cluster 怎么会报 CROSSSLOT 错误?
- wpf - 如何打开 TCP 连接并通过 WPF 中的另一个方法发送数据?
- r - 从 r 中的向量舍入到固定间隔
- azure - 错误:在任何资源组中都找不到 ADLA 帐户 - DataLakeStoreGen1
- java - 我怎样才能使这段代码更短更干净
- python - 是否可以在 Tensorflow 上的不同设备上运行网络的某些层?