标签: streaming

Spotify 的在线服务如何传输音乐使其无法下载

我正在开发一个将托管几首歌曲的网站。我知道在大多数情况下,音乐流可以通过 Chrome 的开发者工具、Firebug 等下载。Soundcloud 是一个示例站点,可以使用这种下载流的方法。

另一方面,Spotify 似乎已经找到了一种流媒体音乐的方法,因此无法下载音乐。这怎么可能?人们如何为自己的网站实施这种级别的保护?


我想要收集的答案和信息隐藏在所有评论的喧嚣之中。

正如@idbebhold所建议的,Ii 事实证明RTMP 流可能是我正在寻找的答案。

html streaming spotify html5-audio

2
推荐指数
1
解决办法
5552
查看次数

Jackson JSON Streaming API:将整个对象直接读取到字符串

我正在尝试逐个对象地流式传输 JSON 数组,但我需要将其作为原始 JSON 字符串导入。

给定一个输入数组,如下所示:

[
 {"object":1},
 {"object":2},
 ...
 {"object":n}
]
Run Code Online (Sandbox Code Playgroud)

我正在尝试遍历字符串:

{"object":1}
{"object":2}
...
{"object":n}
Run Code Online (Sandbox Code Playgroud)

我可以使用流 API 导航结构来验证我是否遇到了一个对象,等等,但我认为我取回字符串的方式是理想的。

现在:

//[...]
//we have read a START_OBJECT token
JsonNode node = parser.readValueAsTree();
String jsonString = anObjectMapper.writeValueAsString(node);
//as opposed to  String jsonString = node.toString() ;
//[...]
Run Code Online (Sandbox Code Playgroud)

我想整个 JsonNode 结构的构建涉及大量开销,如果我只是重新序列化,这是毫无意义的,所以我正在寻找更好的解决方案。类似这样的事情将是理想的:

//[...]
//we have read a START_OBJECT token
String jsonString = parser.readValueAsString()
//or parser.skipChildrenAsString()
//[...]
Run Code Online (Sandbox Code Playgroud)

物体显然不那么简单

{"object":1}
Run Code Online (Sandbox Code Playgroud)

这就是为什么我希望不要浪费时间进行毫无意义的节点构建。可能有一些理想的方法,包括将内容映射到对象并使用它,但我无法做到这一点。我需要原始 JSON 字符串(一次一个对象)来处理现有代码。

如有任何建议或意见,我们将不胜感激。谢谢!

编辑: parser.getText() 以文本形式返回当前标记(例如 START_OBJECT -> “{”),但不返回对象的其余部分。

Edit2 :使用 Streaming API 的动机是一一缓冲对象。实际的json文件可能相当大,并且每个对象在使用后都可以被丢弃,所以我只需要迭代即可。

java string streaming json jackson

2
推荐指数
1
解决办法
4139
查看次数

Kafka 在有状态处理中验证消息

我有一个应用程序,多个用户可以发送 REST 操作来修改共享对象的状态。当一个对象被修改时,将会发生多个操作(数据库、审计、日志记录......)。

并非所有操作都有效,例如您无法在删除对象后对其进行修改。

使用 Kafka 我正在考虑以下架构:

  1. 剩余操作在 Kafka 主题中排队。
  2. 对同一对象的操作将针对同一分区。因此该对象的所有操作都将按顺序并由消费者处理
  3. 消费者正在监听分区并使用内存数据库验证操作
  4. 如果操作有效,则发送到“有效操作主题”,否则发送到“无效操作主题”
  5. 其他消费者(db、log、audit)正在监听“有效操作主题”

我不太确定第三点。我不喜欢保留所有对象的状态的想法。(我有数十亿个对象,即使一个对象的大小可以达到 10mb,我需要存储来验证其状态的也只是几 KB...

然而,这是一种常见的模式吗?否则如何验证某些操作的有效性?

另外,您将使用什么作为内存数据库?当然它必须具有高可用性、容错性并支持事务(读和写)。

streaming in-memory-database apache-kafka kafka-consumer-api apache-kafka-streams

2
推荐指数
1
解决办法
1161
查看次数

gRPC 客户端流是如何实现的

gRPC 客户端流/双向流是如何通过 HTTP/2 实现的?
服务器流传输是有道理的,因为它可以利用服务器推送向请求发送多个响应,但我不清楚它如何像通过 websocket 那样通过 HTTP/2 进行双向消息传递。

streaming http2 grpc

2
推荐指数
1
解决办法
635
查看次数

使用 FFMPEG 将流从网站流式传输到 Twitch

是否可以通过 FFMPEG 将带有直播(即 ip-camera)的网站流式传输到 Twitch?如果是,有人知道如何实现这一目标吗?

streaming ffmpeg video-streaming ip-camera twitch

2
推荐指数
1
解决办法
6048
查看次数

如何将火花流应用程序的输出写入单个文件

我正在使用火花流从 Kafka 读取数据并传递到 py 文件进行预测。它返回预测以及原始数据。它将原始数据及其预测保存到文件中,但是它为每个 RDD 创建了一个文件。我需要一个由收集到的所有数据组成的单个文件,直到我停止将程序保存到单个文件中。

我试过 writeStream 它甚至不创建单个文件。我尝试使用 append 将它保存到 parquet,但它创建了多个文件,每个 RDD 为 1。我试图用追加模式写多个文件作为输出。下面的代码创建一个文件夹 output.csv 并将所有文件输入其中。

 def main(args: Array[String]): Unit = {
    val ss = SparkSession.builder()
      .appName("consumer")
      .master("local[*]")
      .getOrCreate()

    val scc = new StreamingContext(ss.sparkContext, Seconds(2))


    val kafkaParams = Map[String, Object](
        "bootstrap.servers" -> "localhost:9092",
        "key.deserializer"-> 
"org.apache.kafka.common.serialization.StringDeserializer",
        "value.deserializer"> 
"org.apache.kafka.common.serialization.StringDeserializer",
        "group.id"-> "group5" // clients can take
      )
mappedData.foreachRDD(
      x =>
    x.map(y =>       
ss.sparkContext.makeRDD(List(y)).pipe(pyPath).toDF().repartition(1)
.write.format("csv").mode("append").option("truncate","false")
.save("output.csv")
          )
    )
scc.start()
scc.awaitTermination()
Run Code Online (Sandbox Code Playgroud)

我只需要获取 1 个文件,其中包含流式传输时收集的所有语句。

任何帮助将不胜感激,谢谢您的期待。

streaming apache-spark spark-streaming apache-spark-sql csv-write-stream

2
推荐指数
1
解决办法
2910
查看次数

如何在 Python 中使用 aiohttp 读取流式 api 的行?

我正在尝试将 Python HTTP 客户端转换requestsaiohttp. 逻辑是将 GET 调用发送到 REST 端点,该端点偶尔会传输数据并打印它返回的行。

我有一个使用带有选项和 的请求的代码,它工作得很好:stream=Trueiter_lines

import json
import requests

def main():
    with requests.get('https://my-streaming-url.com', stream=True) as r:
        if r.encoding is None:
            r.encoding = 'utf-8'
        for line in r.iter_lines(decode_unicode=True):
            if line:
                # Print each line emitted by the streaming api
                print(json.loads(line))

if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

现在,我想将此逻辑转换为aiohttp 流 api并尝试:

import asyncio
import aiohttp
import json

loop = asyncio.get_event_loop()

async def main():
    r = aiohttp.request('get', 'https://my-streaming-url.com')
    async …
Run Code Online (Sandbox Code Playgroud)

python streaming aiohttp

2
推荐指数
1
解决办法
7544
查看次数

C#中的空引用异常

当我试图从结构中返回一个值时,我遇到了"空引用异常".

这是代码:

AssetItem item = new AssetItem(); 

        item = initModified();

        bool found = false;
        int index = getIndex(barcode);
        string modifiedFile = filepath + "Modified\\" + dir + "\\" + index + ".asdt";

        if(File.Exists(modifiedFile))
        {   
            using(StreamReader reader = new StreamReader(modifiedFile))
            {
                string line = reader.ReadLine();
                while(line.Trim()!="")
                {
                    string[] split = line.Split(',');
                    if(split[1]==barcode)
                    {
                        found = true;
                        break;
                    }
                    line = reader.ReadLine();
                }
                reader.Close();
            }
        }

        if(found)
        {
            item.modified = true; 
        }
        else
        {
            item.modified = false;
        }


        return item;
Run Code Online (Sandbox Code Playgroud)

我通过调用包含该item.modified = …

c# streaming notepad nullreferenceexception

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

在iPhone上直播

我刚开始在iPhone上进行直播.所以任何有关如何在iPhone中实时流动的帮助.我想如果我可以在HTML5中添加视频标签,然后在UIWebView中加载该html将起作用.我对吗?如果不是你做什么是直播流媒体.我想在应用程序中嵌入一些新闻频道直播链接,以便从中找到这些链接.

iphone streaming xcode objective-c iphone-sdk-3.0

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

为什么不调用已发布的Int64属性 - 编写器方法 - 组件流

这是一个简单的测试,演示了我在项目中遇到的问题,使用Delphi 2007.我使用TComponent类来存储组件的各种状态.但永远不会调用Int64属性writer方法(仅设置目标字段).因此,不可能依靠编写器来更新GUI TList或类似的东西......

例如:

TTestClass = Class(TComponent)
  Private
    Fb: Int64;
    Fa: Integer;
    Procedure SetFa(Const Value: Integer);
    Procedure SetFb(Const Value: Int64);
  Published
    Property a: Integer Read Fa Write SetFa;
    Property b: Int64 Read Fb Write SetFb;
  Public
    Procedure SaveInstance(Var Str: TStream);
    Procedure LoadInstance(Var Str: TStream);
    Procedure ReallyLoadInstance(Var Str: TStream);
    Procedure Assign(Source: TPersistent); Override;
  End;

TForm1 = Class(TForm)
  Button1: TButton;
  Button2: TButton;
  Button3: TButton;
  Procedure Button1Click(Sender: TObject); // test: 1st step, save the class
  Procedure Button2Click(Sender: TObject); // test: 2nd step, try …
Run Code Online (Sandbox Code Playgroud)

delphi streaming components delphi-2007

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