小编meh*_*i.r的帖子

如何在 FFMPEG 4.1 中启用 LHLS?

我正在尝试使用 FFMPEG 创建低延迟 CMAF 视频流。为此,我想lhls在 FFMPEG 中启用该选项,以便#EXT-X-PREFETCH在 HLS 清单中写入标签。

来自 FFMPEG 文档:

https://www.ffmpeg.org/ffmpeg-all.html

启用低延迟 HLS(LHLS)。添加 #EXT-X-PREFETCH 标签和当前 >segment 的 URI。Apple 没有 LHLS 的官方规范。与此同时,>hls.js 玩家正在尝试标准化一个开放的 LHLS 规范。>草案规范可在https://github.com/video-dev/hlsjs->rfcs/blob/lhls-spec/proposals/0001-lhls.md此选项也将尝试>遵守上述开放规范, 直到 Apple 的规范正式 > 支持它。仅在启用流和 hls_playlist 选项时适用。这是一个实验性功能。

我在 FFMPEG 4.1 中使用以下命令:

ffmpeg -re -i ~/Documents/videos/BigBuckBunny.mp4 \
    -map 0 -map 0 -map 0 -c:a aac -c:v libx264 -tune zerolatency \
    -b:v:0 2000k -s:v:0 1280x720 -profile:v:0 high \
    -b:v:1 1500k -s:v:1 640x340  -profile:v:1 main \
    -b:v:2 500k -s:v:2 320x170  -profile:v:2 …
Run Code Online (Sandbox Code Playgroud)

video ffmpeg low-latency http-live-streaming mpeg-dash

10
推荐指数
1
解决办法
8801
查看次数

在没有SDK和CLI的情况下使用Python 3将文件POST到AWS Mediastore

我想使用Python和Signature v4将mp4文件发布到AWS MediaStore。我正在尝试使用PutObjectMediaStore中的操作。对于这项工作,我无法使用SDK或CLI。

我可以在没有SDK或CLI的情况下使用Python向MediaStore发出GET请求,但是关于POST请求,我不知道如何处理有效负载。我收到以下错误:

<InvalidSignatureException>
  <Message>The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.</Message>
</InvalidSignatureException>
Run Code Online (Sandbox Code Playgroud)

无效的POST代码


# NON WORKING CODE

import sys, os, base64, datetime, hashlib, hmac 
import requests # pip install requests

method = 'PUT'
service = 'mediastore'
host = 'qwerty123.data.mediastore.ap-northeast-1.amazonaws.com'
region = 'ap-northeast-1'
endpoint = 'https://qwerty123.data.mediastore.ap-northeast-1.amazonaws.com'
request_parameters = 'Action=PutObject&Path=dummyfile.mp4&Version=2017-09-01'

cwd = os.getcwd()

def sign(key, msg):
    return hmac.new(key, msg.encode('utf-8'), …
Run Code Online (Sandbox Code Playgroud)

python mediastore amazon-web-services

7
推荐指数
1
解决办法
197
查看次数

FFmpeg 在使用 PUT 方法时会忽略一些 HTTP 选项

我正在使用 FFmpeg 创建 CMAF 流,并使用FFMpeg的方法将其上传到AWS资源 (AWS MediaStore) PUT。我需要Content-Type在上传清单和段时传递标头。我有 3 种类型的文件:

application/x-mpegURL : m3u8 清单

application/dash+xml : mpd 清单

video/mp4 : 视频片段

目前,所有类型都Binary - octet-streamAWS资源 (AWS MediaStore)中设置为。由于我将上传大量文件,因此无法在文件上传后使用 AWS Lambda 函数设置正确的内容类型。

FFmpeg 上传日志

[https @ 0x555fe7a7d1c0] Opening 'https://XXXX.YYYY.amazonaws.com/chunk-stream0-00001.mp4' for writing
[https @ 0x555fe7a7d0c0] request: PUT /chunk-stream0-00001.mp4 HTTP/1.1
Transfer-Encoding: chunked
User-Agent: Lavf/58.28.100
Accept: */*
Connection: keep-alive
Host: XXXXX.YYYY.amazonaws.com
Icy-MetaData: 1
Run Code Online (Sandbox Code Playgroud)

我的尝试

我尝试了 FFMpeg 的静态构建和主分支。我尝试了不同的方法来传递内容类型,但没有成功:

-mime_type 1 -headers "Content-type: video/mp4\r\n"

-mime_type "video/mp4,application/dash+xml,application/x-mpegURL"

-content_type application/dash+xml

-multiple_requests …

ffmpeg mediastore amazon-web-services http-live-streaming mpeg-dash

6
推荐指数
0
解决办法
1337
查看次数

如果Android设备能够进行存储加密,则以编程方式检测

我正在开发一个Android应用程序,它启动加密设备上的数据的过程.

我正在使用以下代码检测加密状态:

int encrypted = 0;
device_policy_manager = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
encrypted = device_policy_manager.getStorageEncryptionStatus();
Log.d("TAG", "encryption status : " + encrypted);
}
Run Code Online (Sandbox Code Playgroud)

在某些设备上,加密过程开始并失败.通常,这些设备没有"设置">"安全性"菜单(Android 3.x和Android 4.x)中提供的"加密"选项.

有没有办法以编程方式检测设备是否能够进行存储加密?

谢谢,谢谢.

encryption storage android android-intent device-policy-manager

5
推荐指数
1
解决办法
847
查看次数