小编Tha*_*son的帖子

Python SSL请求和Let的加密证书

我现在正在努力让请求GET使用Let的加密证书对我的网站执行简单的请求.一切都很好的网站,我可以从Chrome访问它就好了.(我现在正在运行OSX El Capitan).

首先,我尝试GET向网站提出请求:

>>> import requests
>>> requests.get('https://example.com')
Run Code Online (Sandbox Code Playgroud)

这给了我:

requests.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)
Run Code Online (Sandbox Code Playgroud)

然后我尝试了各种各样的东西,包括获取Let的加密权限证书,以下openssl命令成功验证我的站点的证书:

> openssl s_client -CAfile ./letsencryptauthorityx1.pem -connect example.com:443
Run Code Online (Sandbox Code Playgroud)

其输出包括以下内容:

...
SSL-Session:
    Protocol  : TLSv1
    Cipher    : DHE-RSA-AES256-SHA
    Session-ID: ...
    Session-ID-ctx: 
    Master-Key: ...
    Key-Arg   : None
    Start Time: 1452865123
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)
---
Run Code Online (Sandbox Code Playgroud)

也许我在这里遗漏了一些东西,但它看起来好像我的网站已经根据我提供的Let's Encrypt授权证书进行了验证.所以,我很高兴地将我的Python代码更改为:

>>> requests.get('https://example.com', verify='./letsencryptauthorityx1.pem')
Run Code Online (Sandbox Code Playgroud)

但我仍然不断收到requests.exceptions.SSLError错误.我也尝试使用DER权威证书的格式,但后来我收到以下错误requests:

requests.exceptions.SSLError: …
Run Code Online (Sandbox Code Playgroud)

python ssl openssl python-requests lets-encrypt

9
推荐指数
1
解决办法
4336
查看次数

HTML5 的 FFMPEG H.264 编码(最终是 MPEG-DASH)

我想将 MP4 文件转换为能够通过Chrome 上的DASH-IF HTML5 播放器播放的 MPEG-DASH 视频。我使用 FFMPEG 和 MP4Box(来自 GPAC)对视频进行转码,然后将其拆分,并在 JavaScript 控制台上不断收到 MEDIA_ERR_SRC_NOT_SUPPORTED 错误。

从在线提供的(非常稀疏的)信息(请参阅此 Chromium 线程)来看,似乎 Chrome 本身仅支持具有约束基线编码配置文件的 MP4 文件,并且非常严格地仅支持“avc1.42E01E,mp4a.40.2 " 编解码器。

在用 MP4Box 分割之前,我已经尝试了几乎所有我可以从命令行对视频进行编码的方法,使用 FFMPEG 来获得带有编解码器配置文件“avc1.42E01E”的 H.264 视频编码,但它一直给我“avc1 .42C01E”。这是我尝试过的(许多)FFMPEG 命令之一:

ffmpeg -y -i Sintel_-_Third_Open_Movie_by_Blender_Foundation.mp4 -profile:v baseline -level:v 30 -acodec libvo_aacenc -vcodec libx264 sintel-recoded.mp4
Run Code Online (Sandbox Code Playgroud)

根据ITU-T标准7.4.2.1.1和A2.1-A2.3节,“avc1.42E01E”的视频编码意味着0xE0的约束标志(constraint_set标志0、1和2被设置),而"avc1.42C01E" 意味着 0xC0 的约束标志(constraint_set 标志 0 和 1 被设置)。前者 (0xE0) 表示符合 Baseline、Main 和 Extended 配置文件,而后者 (0xC0) 表示仅符合 Baseline 和 Main 配置文件。

显然,FFMPEG 不支持 H.264 的扩展配置文件。

有没有人可能对如何将 MP4 文件编码为“avc1.42E01E”有任何建议?理想情况下使用 FFMPEG,但我愿意使用其他编码器?

html video google-chrome ffmpeg chromium

3
推荐指数
1
解决办法
1万
查看次数