我遇到了 YouTube API 的问题,我正在使用 ("google/apiclient": "2.7")
我已经创建了广播并将其绑定到流,然后将 RTMP URL 作为端点添加到我的直播中但我找不到在 YouTube 上启动直播的方法(在原始直播开始后)
$access_token = $data['yt-access-token'];
$title = $data['title'];
$description = $data['description'];
//=======================================//
$client = new Google_Client();
$client->setClientId(env('GOOGLE_APP_ID'));
$client->setClientSecret(env('GOOGLE_SECRET'));
$client->setScopes('https://www.googleapis.com/auth/youtube');
$client->setAccessToken($access_token);
// Define an object that will be used to make all API requests.
$youtube = new Google_Service_YouTube($client);
//=======================================//
try {
// Create an object for the liveBroadcast resource's snippet. Specify values
// for the snippet's title, scheduled start time, and scheduled end time.
$broadcastSnippet = new Google_Service_YouTube_LiveBroadcastSnippet();
$broadcastSnippet->setTitle($title);
$broadcastSnippet->setDescription($description);
$broadcastSnippet->setScheduledStartTime('2020-08-20T00:00:00.000Z'); …Run Code Online (Sandbox Code Playgroud) 今天,我尝试使用Arch 解决方案通过 FFMPEG 进行流式传输,但由于 FFMPEG 上的一件简单的事情,我所有的尝试都徒劳无功。它说探针大小不够大,所以我本能地越来越大地增加探针大小......现在它-probesize "500M"仍然说它不够大。这是代码片段
[x11grab @ 0x5631f846cd00] Stream #0: not enough frames to estimate rate; consider increasing probesize
Input #0, x11grab, from ':0.0':
Duration: N/A, start: 1603397505.341400, bitrate: 1007124 kb/s
Stream #0:0: Video: rawvideo (BGR[0] / 0x524742), bgr0, 1366x768, 1007124 kb/s, 30 fps, 1000k tbr, 1000k tbn, 1000k tbc
0: Input/output error
Run Code Online (Sandbox Code Playgroud)
和代码
#!/bin/bash
INRES="1366x768" # input resolution
OUTRES="1366x768" # output resolution
FPS="30" # target FPS
GOP="60" # i-frame interval, should be double …Run Code Online (Sandbox Code Playgroud) 我开发了一个代理,可以让我通过 http 以 udp 单播 m2tp 流的形式使用 ISP 提供的回放视频。为此,我使用 python、asyncio 和 Sanic。
它工作得很好,但有一些我无法解释的事情。某些流使用一个 CPU 核心 (i7-3770) 的不到 8%,而其他特定流则消耗高达 30%。所有流原则上都是相同的,我不对它们进行任何处理,只是从 udp 套接字读取并写入流sanic.Response,基本上是这样的:
import asyncio_dgram
import socket
from contextlib import closing
from Sanic import Sanic, response
app = Sanic()
MIME = 'video/MP2T'
@app.get('/some/url')
async def handle_url(request):
host = socket.gethostbyname(socket.gethostname())
client_port = 43545
async def my_streaming_fn(response):
with closing(await asyncio_dgram.bind((host, client_port))) as stream:
while True:
data, remote_addr = await stream.recv()
await response.write(data)
return response.stream(my_streaming_fn, content_type=MIME)
Run Code Online (Sandbox Code Playgroud)
所有流均到达单独的 VLAN,所有 ts 数据包均为 1344 字节(无标头为 1316 …
我正在尝试将程序升级到 aws-sdk 版本 3,但收到错误:
NotImplemented:您提供的标头暗示未实现的功能
函数get_s3_stream需要返回一个流给主程序。
SDK 版本 2,有效:
var AWS = require("aws-sdk");
var s3 = new AWS.S3({apiVersion: '2006-03-01'});
const stream = require('stream');
function get_s3_stream() {
var pass = new stream.PassThrough();
var params = {Bucket: "bucketname", Key: "testfile1.txt", Body: pass};
s3.upload(params, function(err, data) {
console.log(err, data);
});
return pass;
}
const inputStream = stream.Readable.from(["input string1"])
const outStream = get_s3_stream()
inputStream.pipe(outStream);
Run Code Online (Sandbox Code Playgroud)
SDK版本3,不起作用:
const { S3Client, PutObjectCommand } = require("@aws-sdk/client-s3");
const s3Client = new S3Client({ region: "us-east-1" });
const stream = require('stream') …Run Code Online (Sandbox Code Playgroud) 我使用 HTML 文件输入从我的设备存储访问文件,然后我将该文件作为流读取。
const stream = myFile.stream()
const reader = stream.getReader();
//actually I use this each time I want to read more data from the stream
reader.read().then(function({ done, value }) {
const bufferSizeInBytes = value.length // I want to limit this to 1000 bytes as max value
})
Run Code Online (Sandbox Code Playgroud)
另一个让我困惑的问题是,为什么每次读取时我们都会得到不同大小的缓冲区,它是否取决于可用内存或 cpu 或者它实际上是如何工作的?如果它取决于内存,我们将能够在一次读取中读取整个流,因为文件已经存在100 mb并且我的可用内存约为 6GB,但实际上它需要多次读取,这让我认为内存不是唯一的因素这次操作的背后。
任何帮助将非常感激。
我有以下问题:我有一个 Ubuntu 20.04.1,在 Docker 容器中我有 Python 应用程序,使用 FastAPI 接受来自 Appsflyer 的数据流(POST 方法)。库版本有:
fastapi~=0.78.0
uvicorn~=0.17.6
pydantic~=1.9.1
aio_pika~=8.0.3
Run Code Online (Sandbox Code Playgroud)
每隔 10-12 小时,我就会出现以下错误: LocalProtocolError( h11._util.LocalProtocolError: can't handle event type Response when role=SERVER and state=MUST_CLOSE ,因此我会丢失数据。其根本原因可能是什么? 谢谢
我明白,我们用Suspense来划定界限。如果没有悬念,这意味着渲染将在一次渲染中完成,这与没有流式传输的 SSR 相同。
如果代码库中根本没有 Suspense 使用,我们是否会从使用 renderToPieableStream - 新流中获得任何好处?
另外,这是否意味着 renderToNodeStream 会做同样的事情?
我正在尝试在 Node.js 中设置 StreamingRecognize() Google Cloud Speech to Text V2 以用于流式传输音频数据,并且在初始识别器请求设置流时它总是向我抛出相同的错误:
Error: 3 INVALID_ARGUMENT: Invalid resource field value in the request.
at callErrorFromStatus (/Users/<filtered>/backend/node_modules/@grpc/grpc-js/src/call.ts:81:17)
at Object.onReceiveStatus (/Users/<filtered>/backend/node_modules/@grpc/grpc-js/src/client.ts:701:51)
at Object.onReceiveStatus (/Users/<filtered>/backend/node_modules/@grpc/grpc-js/src/client-interceptors.ts:416:48)
at /Users/<filtered>/backend/node_modules/@grpc/grpc-js/src/resolving-call.ts:111:24
at processTicksAndRejections (node:internal/process/task_queues:77:11)
for call at
at ServiceClientImpl.makeBidiStreamRequest (/Users/<filtered>/backend/node_modules/@grpc/grpc-js/src/client.ts:685:42)
at ServiceClientImpl.<anonymous> (/Users/<filtered>/backend/node_modules/@grpc/grpc-js/src/make-client.ts:189:15)
at /Users/<filtered>/backend/node_modules/@google-cloud/speech/build/src/v2/speech_client.js:318:29
at /Users/<filtered>/backend/node_modules/google-gax/src/streamingCalls/streamingApiCaller.ts:71:19
at /Users/<filtered>/backend/node_modules/google-gax/src/normalCalls/timeout.ts:54:13
at StreamProxy.setStream (/Users/<filtered>/backend/node_modules/google-gax/src/streamingCalls/streaming.ts:204:20)
at StreamingApiCaller.call (/Users/<filtered>/backend/node_modules/google-gax/src/streamingCalls/streamingApiCaller.ts:88:12)
at /Users/<filtered>/backend/node_modules/google-gax/src/createApiCall.ts:118:26
at processTicksAndRejections (node:internal/process/task_queues:95:5)
{
code: 3,
details: 'Invalid resource field value in the request.',
metadata: Metadata {
internalRepr: Map(2) {
'google.rpc.errorinfo-bin' => …Run Code Online (Sandbox Code Playgroud) streaming node.js google-speech-api google-cloud-speech google-speech-to-text-api
所以我正在编写一个一次性脚本供我个人单独使用,我希望能够看到这个过程的进展情况.基本上我正在处理几千个媒体发布并将它们发送到我们的新CMS.
所以我没有锤击CMS,我sleep在每5次请求后制作脚本几秒钟.
我希望 - 当脚本正在执行时 - 能够看到我echo告诉我脚本将要睡眠或者最后一次与webservice的交易成功.
这可能在PHP?
谢谢你的帮助!
伊恩
我想做什么:
用户点击了一个网址(例如:BASE-URL/download/json).
代码从数据库中获取大量数据并将其流式传输到JSON文件中,并提示用户下载该文件.
我尝试了什么:
创建了一个大型(700 MB)JSON文件.尝试用代码打开它,但是抛出了错误.
的file_get_contents($文件)
错误:
允许的内存大小为XXX字节耗尽(尝试分配YYY字节)
我在Symfony2工作.数据大小可达700MB.无法增加分配的内存.我怎样才能做到这一点?如果需要任何进一步的信息,请评论.
streaming ×10
php ×3
node.js ×2
python ×2
amazon-s3 ×1
fastapi ×1
ffmpeg ×1
javascript ×1
json ×1
outputstream ×1
progress-bar ×1
reactjs ×1
sanic ×1
symfony ×1
twitch ×1
udp ×1
youtube-api ×1