今天我的一个应用程序(Android 2.1),我想从URL流式传输视频.
至于我探索Android SDK它非常好,我几乎喜欢它的每一部分.但现在谈到视频流,我有点迷茫.
有关Android SDK所需的任何信息,您有数以千计的博客告诉您如何操作.谈到视频流,它是不同的.信息很丰富.
每个人都这样做,这是在这里和那里欺骗.
是否有任何众所周知的程序允许用户流式传输视频?
谷歌是否认为让开发人员更容易?
我有个问题.我想从我的网络摄像头用ffmpeg进行直播.
从另一个终端我使用此命令启动ffmpeg流,它可以工作:
sudo ffmpeg -re -f video4linux2 -i /dev/video0 -fflags nobuffer -an http://localhost:8090/feed1.ffm
Run Code Online (Sandbox Code Playgroud)在我的配置文件中,我有这个流:
<Stream test.webm>
Feed feed1.ffm
Format webm
NoAudio
VideoCodec libvpx
VideoSize 720x576
VideoFrameRate 25
# Video settings
VideoCodec libvpx
VideoSize 720x576 # Video resolution
VideoFrameRate 25 # Video FPS
AVOptionVideo flags +global_header # Parameters passed to encoder
# (same as ffmpeg command-line parameters)
AVOptionVideo cpu-used 0
AVOptionVideo qmin 10
AVOptionVideo qmax 42
#AVOptionVideo quality good
PreRoll 5
StartSendOnKey
VideoBitRate 400 # Video bitrate
</Stream>
Run Code Online (Sandbox Code Playgroud)我用它启动流
ffplay …
是否可以使用HTML5播放shoutcast/icecast流?
如果是这样,我该如何实施呢?
希望有人可以帮助我解决这个问题.
我正在玩一个node.js服务器,它将音频流传输到客户端,我想创建一个HTML5播放器.现在,我正在使用分块编码从节点流式传输代码,如果直接转到URL,它的效果很好.
我想做的是使用HTML5 <audio>标签嵌入它,如下所示:
<audio src="http://server/stream?file=123">
Run Code Online (Sandbox Code Playgroud)
/stream节点服务器在哪里流式传输MP3.HTML5播放器在Safari和Chrome中运行良好,但它不允许我寻找,Safari甚至称它是"直播".在标题中/stream,我包括文件大小和文件类型,并且响应正确结束.
有关如何解决这个问题的任何想法?我当然可以立即发送整个文件,但是玩家会等到整个文件被下载 - 我宁愿传输它.
这里的规范示例是Twitter的API.我从概念上理解REST API是如何工作的,本质上它只是一个查询服务器,用于您的特定请求,然后您可以接收响应(JSON,XML等),非常好.
但是,我不确定流API如何在幕后工作.我理解如何消费它.例如,Twitter听取回复.从响应中听取数据,并在其中发送推文.在字符串缓冲区中构建块并等待表示Tweet结束的换行符.但他们正在做些什么来使这项工作?
假设我有一堆数据,我想在本地设置一个流API,供网络上的其他人使用(就像Twitter一样).这是怎么做的,有哪些技术?这是Node JS可以处理的吗?我只是想绕过他们正在做的事情来使这件事发挥作用.
我目前正在 ASP.NET Core 3 中构建 API,作为我使用 .NET Core 的第一个项目。
我目前正在尝试将视频发送到我的 React.js 前端以在浏览器中观看。上传文件和视频确实没有问题,您在下面看到的方法也已经将文件发送到客户端,但是如果视频长于几秒钟,则视频播放器确实很慢,并且跳过也需要很长时间几秒钟的视频。我认为这是因为文件首先被完全下载然后播放。
[Route("getFileById")]
public FileResult getFileById(int fileId)
{
var context = new DbContext();
var file = context.File.Find(fileId);
if (file == null)
{
Console.WriteLine("file " + fileId + " not found");
return null;
}
var content = new FileStream(file.Name, FileMode.Open, FileAccess.Read, FileShare.Read);
var response = File(content, "application/octet-stream");
return response;
}
Run Code Online (Sandbox Code Playgroud)
我认为解决我的问题的方法是流式传输文件而不是整体发送。我已经在谷歌上搜索了如何使用 ASP.NET Core 3 流式传输视频,但我只找到为 ASP.NET Core 2 解释它的网站(例如http://anthonygiretti.com/2018/01/16/streaming-video-asynchronously -in-asp-net-core-2-with-web-api/ )
我已经尝试使用这些网站上的代码,但他们的做法与 ASP.NET Core 3 不兼容。
如何在 ASP.NET Core 3 …
此代码将大文件传输给我们的用户:
// Open the file.
iStream = new System.IO.FileStream(filepath, System.IO.FileMode.Open,
System.IO.FileAccess.Read, System.IO.FileShare.Read);
// Total bytes to read:
dataToRead = iStream.Length;
// Read the bytes.
while (dataToRead > 0)
{
// Verify that the client is connected.
if (Response.IsClientConnected)
{
// Read the data in buffer.
length = iStream.Read(buffer, 0, 10000);
// Write the data to the current output stream.
Response.OutputStream.Write(buffer, 0, length);
// Flush the data to the HTML output.
Response.Flush();
buffer = new Byte[10000];
dataToRead = dataToRead - length; …Run Code Online (Sandbox Code Playgroud) 我目前正在尝试在转码过程之后将内容流式传输到网络上.这通常可以通过将二进制文件写入我的Web流来正常工作,但是某些浏览器(特别是IE7,IE8)不喜欢不在HTTP头中定义Content-Length.我相信"有效"标题应该具有此设置.
当您有未知的内容长度时,将内容流式传输到网络的正确方法是什么?转码过程可能需要一段时间,所以我想在完成时开始流式传输.
我想在Python中实现一个服务器,它通过HTTP传输MP3格式的音乐.我希望它能够播放音乐,以便客户端可以连接到流并开始收听当前正在播放的内容,就像广播电台一样.
以前,我使用SocketServer.TCPServer在Python中实现了自己的HTTP服务器(是的,我知道BaseHTTPServer存在,只是想自己编写一个迷你HTTP堆栈),那么音乐流媒体在架构上会有什么不同呢?我需要在网络端和MP3端看哪些库?
我有一个服务接口,其方法具有类型的参数Stream.我应该在读完此流中的所有数据后关闭流,还是在方法调用完成后由WCF运行时完成?
我见过的大多数例子,只读取流中的数据,但不要在Stream上调用Close或Dispose.
通常我会说我不必关闭流因为类不是流的所有者,但原因是为什么问这个问题是我们正在调查我们的系统中的一个问题,一些Android客户端,那个使用HTTP-Post将数据发送到此服务有时具有未关闭的打开连接(使用netstat哪个列表ESTABLISHED Tcp连接进行分析).
[ServiceContract]
public interface IStreamedService {
[OperationContract]
[WebInvoke]
Stream PullMessage(Stream incomingStream);
}
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall, UseSynchronizationContext = false)]
public class MyService : IStreamedService {
public System.IO.Stream PullMessage(System.IO.Stream incomingStream) {
// using(incomingStream) {
// Read data from stream
// }
Stream outgoingStream = // assigned by omitted code;
return outgoingStream;
}
Run Code Online (Sandbox Code Playgroud)
服务/绑定的配置
<webHttpBinding>
<binding name="WebHttpBindingConfiguration"
transferMode="Streamed"
maxReceivedMessageSize="1048576"
receiveTimeout="00:10:00"
sendTimeout="00:10:00"
closeTimeout="00:10:00"/>
</webHttpBinding>
Run Code Online (Sandbox Code Playgroud)