ANTLR生成的java解析器能够流式传输任意大的文件吗?
我尝试使用 UnbufferedCharStream 构建 Lexer 并将其传递给解析器。由于调用 UnbufferedCharStream 上的 size,我收到了 UnsupportedOperationException,并且该异常包含一个解释,说明您无法在 UnbufferedCharStream 上调用 size。
new Lexer(new UnbufferedCharStream( new CharArrayReader("".toCharArray())));
CommonTokenStream stream = new CommonTokenStream(lexer);
Parser parser = new Parser(stream);
Run Code Online (Sandbox Code Playgroud)
我基本上有一个使用 Pig 从 hadoop 导出的文件。它有大量由 '\n' 分隔的行。每列由“\t”分隔。这在 java 中很容易解析,因为我使用缓冲读取器来读取每一行。然后我按 '\t' 分割以获得每一列。但我也想要进行某种模式验证。第一列应该是格式正确的日期,后面是一些价格列,然后是一些十六进制列。
当我查看生成的解析器代码时,我可以这样调用它
parser.lines().line()
Run Code Online (Sandbox Code Playgroud)
这会给我一个列表,从概念上讲我可以对其进行迭代。但当我得到它时,列表似乎已经固定大小了。这意味着解析器可能已经解析了整个文件。
API 的另一部分是否允许您传输非常大的文件?就像使用访问者或侦听器在读取文件时被调用的某种方式一样?但它无法将整个文件保留在内存中。它不适合。
流媒体端不断发送 2048 字节的声音样本以及作为整数的时间,一起发送到使用 pickle.dumps 进行腌制的元组中,然后将其以 UDP 数据包发送到接收器,然后接收器将其解开并缓冲它然后播放声音样本。
使用 python 3 一切都很好,接收器上的比特/秒速度是预期的。
当我在python 2.7中运行streamer时,速度更快了!我觉得 python 2 更快。
然后我用wireshark检查了接收方正在接收的UDP数据包,它们比需要的要大。
流光端:
while True:
data = next(gen)
print("data:{}".format(len(data)))
stime +=1
msg = (stime,data)
payload = pickle.dumps(msg)
print("payload:{}".format(len(payload)))
bytes_sent = s.sendto(payload,addr)
time.sleep(INTERVAL)
Run Code Online (Sandbox Code Playgroud)
接收端:
while True:
if stop_receiving.get():
break
try:
(payload,addr) = self.sock.recvfrom(32767)
(t,data) = pickle.loads(payload,encoding="bytes")
if stime >= self.frame_time.get():
self.frames.put((t,data))
except socket.timeout:
pass
Run Code Online (Sandbox Code Playgroud)
在使用 pickle format 3 的 python 3.4 上,如果我 pickle.dumps 一个整数和 2048 字节的元组,我会得到 2063 字节。
奇怪的是,在使用 pickle format 2 的 python 2.7 上,我得到了 …
我在维基百科上读到了什么是基本流。我正在使用的工具“Live555”需要“H.264 视频基本流文件”。因此,当从视频应用程序导出视频时,我是否必须选择特定的首选项来生成“Elementery Stream”?
我有一个返回数据的网址text/event-stream,因此我尝试连接并打印我找到的所有内容:
var url = "..."
var source = new EventSource(url);
source.addEventListener('message', function(e) {
console.log(e.data);
}, false);
source.addEventListener('open', function(e) { }, false);
source.addEventListener('error', function(e) {
if (e.readyState == EventSource.CLOSED) { }
}, false);
Run Code Online (Sandbox Code Playgroud)
不幸的是这在服务器端不起作用。我可以这样连接吗?
$ node app.js
app.js:2
var source = new EventSource(url);
^
ReferenceError: EventSource is not defined
at Object.<anonymous> (app.js:2:18)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Function.Module.runMain (module.js:441:10)
at startup (node.js:139:18)
at node.js:968:3
Run Code Online (Sandbox Code Playgroud) 我通过 ffmpeg 使用了 hls 流。
在开始流延迟存在几秒钟。
当我想在非常延迟的情况下从流中的 4k 视频中进行串流时。
我能做什么?
这是我在使用 Google Speech to Text Engine 时遇到的一个问题。我目前正在以 32kB 块实时流式传输 16 位/16 kHz 音频。但是在发送音频和接收转录之间平均有 25 秒的延迟,这违背了实时转录的目的。
为什么会有这么高的延迟?
我想开始说,我已经四处寻找这个问题的答案,但似乎没有其他人遇到过这个问题,或者没有人在做这个问题。所以,我最近在我的 Debian 服务器上安装了 icecast2,问题是我完全能够从连接到端口 8000 上的本地 IP 的本地网络向我的服务器广播,并在 radio.example.com 上通过互联网收听流因为我用 nginx 代理它,所以到目前为止完全没有问题。问题在于当我想广播到我用 nginx stream.example.com 提供的域时
我有两个理论,一个是代理没有给 icecast 提供源 IP,所以它认为它是从 127.0.0.1 广播的,另一个是 nginx 对数据流做了一些奇怪的事情,因此没有提供正确的格式给冰铸。
有什么想法吗?提前致谢!
这是nginx配置
server {
listen 80;
listen [::]:80;
server_name radio.example.com;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Real-IP $remote_addr;
location / {
proxy_pass http://127.0.0.1:8000/radio;
subs_filter_types application/xspf+xml audio/x-mpegurl audio/x-vclt text/css text/html text/xml;
subs_filter ':80/' '/' gi;
subs_filter '@localhost' '@stream.example.com' gi;
subs_filter 'localhost' $host gi;
subs_filter 'Mount Point ' $host gi;
}
} …Run Code Online (Sandbox Code Playgroud) 我想收集包含以下词语的所有推文: 比特币、以太坊、莱特币或 Denarius
但是,我想排除可以归类为转推和包含链接的推文的推文。我从以下网站(https://www.followthehashtag.com/help/hidden-twitter-search-operators-extra-power-followthehashtag)知道我可以添加-filter:links以排除包含链接的推文。通过比较以下搜索词可以清楚地看到这一点;
https://twitter.com/search?f=tweets&vertical=news&q=Bitcoin&src=typd
与https://twitter.com/search?f=tweets&q=Bitcoin%20-filter%3Alinks&src=typd
这同样适用于转推,我可以使用-filter:retweets(参见https://twitter.com/search?f=tweets&q=Bitcoin%20-filter%3Aretweets&src=typd)
我想添加这些标准以确保我减少“噪音”并且不太可能违反任何 API 限制。我编写了以下 Python 脚本:
import sys
import time
import json
import pandas as pd
from tweepy import OAuthHandler
from tweepy import Stream
from tweepy.streaming import StreamListener
USER_KEY = ''
USER_SECRET = ''
ACCESS_TOKEN = ''
ACCESS_SECRET = ''
crypto_tickers = ['bitcoin', 'ethereum', 'litecoin', 'denarius', '-filter:links', '-filter:retweets']
class StdOutListener(StreamListener):
def on_data(self, data):
tweet = json.loads(data)
print(tweet)
def on_error(self, status):
if status == 420:
sys.stderr.write('Enhance …Run Code Online (Sandbox Code Playgroud) 是否有与 iOS 等效的 exoplayer 播放视频?
或者有人可以帮我知道 TikTok 如何流式传输视频?它使用哪个视频播放器?我正在尝试从 firebase 数据库在我的应用程序中流式传输视频,我正在使用 Swift 但我坚持选择正确的方式来流式传输视频。有人可以帮助我或告诉我如何开始吗?
许多用于无服务器实时分析的 AWS 参考架构建议通过 Kinesis Firehose 将处理过的数据从 Lambda 推送到 S3。
为什么我们不能直接从 Lambda 推送数据到 S3?通过跳过中介 Kinesis Firehose 组件来避免复杂性和额外成本不是更好吗?Lambda 将实时数据直接写入 S3 有什么问题吗?
streaming amazon-s3 amazon-web-services aws-lambda amazon-kinesis-firehose