标签: video-streaming

在 Objective C 中创建用于实时音视频广播的 rtsp 客户端

我正在尝试创建一个实时广播音频和视频的 RTSP 客户端。我在链接http://www.gdcl.co.uk/downloads.htm修改了 iOS 代码,并且能够正确地将视频广播到服务器。但现在我在播放音频部分时遇到问题。在链接示例中,代码的编写方式是将视频数据写入文件,然后从文件中读取数据并将 NALU 的视频数据包上传到 RTSP 服务器。

对于音频部分,我不知道如何继续。现在我尝试的是从麦克风获取音频缓冲区,然后通过添加 RTP 标头和 ALU 直接将其广播到服务器。但是这种方法无法正常工作,因为音频开始滞后,并且滞后随着时间的推移而增加。有人可以让我知道是否有更好的方法来实现这一点并使用 lip sycn 音频/视频。

objective-c video-streaming audio-streaming rtsp-client ios

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

在 android webrtc 中切换摄像头(后/前)

我已将 libjingle 库用于 webrtc android 应用程序。我已经成功实现了双向通信的音频视频流。

到目前为止,我一直使用前置摄像头进行视频流,但现在我想为用户提供选项,以选择前置或后置摄像头进行视频流

我怎样才能存档它?我对此一无所知。

我尝试过VideocaptureAndroid切换相机方法但不起作用。

如果有人知道的话可以帮我解决这个功能吗?

提前致谢。

camera android video-streaming libjingle webrtc

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

下载 Twitch 直播

我正在寻找一种方法来将 Twitch 流“通过管道”(抱歉,如果我在这里滥用术语)将其传输到正在传输的文件中。我知道可以在流完成后下载 VOD,但这不适用于我的用例。

我看过一个名为streamlink的库,它可以让我获得给定流的确切URL,但我有点迷失了从这里去哪里

video-streaming twitch

3
推荐指数
2
解决办法
2万
查看次数

如何对TS视频流进行截图?

我想每 1 分钟从视频流中截取一次屏幕截图。视频流以m3u8 文件形式提供:

#EXTM3U
#EXT-X-TARGETDURATION:6
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:112076
#EXT-X-PROGRAM-DATE-TIME:2019-03-19T16:16:53Z
#EXTINF:6.000, 2019/03/19/16/16/53-06000.ts
#EXTINF:6.000, 2019/03/19/16/16/59-06000.ts
#EXTINF:6.000, 2019/03/19/16/17/05-06000.ts
#EXTINF:6.000, 2019/03/19/16/17/11-06000.ts
Run Code Online (Sandbox Code Playgroud)

我找到了一个库来解析它 - https://github.com/globocom/m3u8。但我不明白如何将此 TS 视频流转换为单个 jpeg 文件。我应该吗

  1. 下载.ts文件
  2. 找到需要的框架
  3. 提取它
  4. 删除ts文件?

我应该使用OpenCV还是有更简单的解决方案?

使用OpenV

python opencv screenshot video-streaming

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

如何仅在使用 ffmpeg 添加相同速度的分离音频流时更改视频速度?

我正在使用 ffmpeg 作为视频过滤器。

但是,当我改变视频速度时,我遇到了问题

我想将音频的长度设置为与视频的长度相同。

  • 最短=将音频流扩展到与视频流相同的长度

就我而言,shortest不起作用。视频文件和音频文件,都是不同的,然后合并成一个视频文件。视频的最后一帧停止,音频继续工作。

ffmpeg frame-rate video-streaming

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

如果传输状态为 206 部分内容,Chrome 将无法加载视频

我正在制作一个简单的 Javacom.sun.net.httpserver.HttpServer来提供静态视频文件。如果我返回状态代码 206(部分内容),当我尝试通过浏览器访问它时,视频无法播放(视频在状态代码 200 下播放正常,但我希望能够查找并循环播放视频),这是我的HttpHandler

final String path = StaticHandler.toPathSafe(httpExchange.getRequestURI().getPath());
System.out.println(path);
final File file = new File(path);

if (file.isFile())
{
    int code = 200;
    long position = 0L;
    long end = file.length();

    if (httpExchange.getRequestHeaders().containsKey("Range"))
    {
        try
        {
            long[] range = StaticHandler.parseRange(httpExchange.getRequestHeaders().get("Range").get(0));

            position = range[0];
            if (range[1] != -1)
                end = range[1];

            // the video loads fine when code = 200;
            code = 206;

            httpExchange.getResponseHeaders().set("Content-Range", "bytes " + position + "-" + end + "/" + file.length()); …
Run Code Online (Sandbox Code Playgroud)

java google-chrome video-streaming httpserver html5-video

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

ASP.NET CORE 中的流代理直播流

我有一个网络摄像头的流 URL,它返回“multipart/x-mixed-replace;boundary=myboundary”的内容类型,假设可以通过http://mywebcam/livrestream.cgi访问它

我想在 ASP.NET CORE 中创建一个可以返回相同流的代理。

我创建了一条获取流的路线:

[Route("api/test")]
[HttpGet]
public async Task<HttpResponseMessage> Test()
{
    var client = new HttpClient();
    var inputStream = await client.GetStreamAsync("http://mywebcam/livrestream.cgi");
    var response = new HttpResponseMessage();
    response.Content = new PushStreamContent((stream, httpContent, transportContext) =>
    {
        // what to do ?
    }, "video/mp4");
    return response;
}
Run Code Online (Sandbox Code Playgroud)

看来我得用PushStreamContent了。但我该怎么办呢?定期查询流的无限 while 循环?还有别的事吗?

c# video-streaming asp.net-core

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

RTSP、HLS、WebRTC、Dash(正确用例)

现代时代已经成为视频流\xe2\x80\x94,无论是直播还是录制视频。

\n

在学习过程中,我确实遇到了问题主题中提到的各种协议。协议越多,用例就越有趣;话虽如此,我无法找到适当的比较评估和用例。

\n

有人可以帮助了解用例和关键差异,以便了解何时使用哪个?

\n

另外,有什么统一的协议可以在浏览器、桌面应用程序和移动应用程序(Android 和 iOS)中显示流吗?

\n

提前致谢。

\n

video-streaming audio-streaming

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

在 Expo React Native 应用程序上加载视频时指示加载的最佳方式是什么?

我想问一下在 Expo / React Native 上处理视频加载的最佳方法是什么。

\n

Expo 对于处理视频/音频的视频和 AV 组件有很好的文档:\n https://docs.expo.io/versions/latest/sdk/video/ \n https://docs.expo.io/versions/最新/sdk/av/

\n

到目前为止我已经尝试过两件事:\'

\n
    \n
  1. 在视频组件中使用海报源。这里的问题是海报图像的格式不正确。
  2. \n
\n

这是我的视频组件的样子:

\n
    const videoStyle = { width: \'100%\', height: \'100%\', display: display}; \n    return (\n        <Video\n            ref={playbackObject}\n            source={{uri: source}}\n            posterSource={require(\'path/to/file\')}\n            rate={1.0}\n            volume={1.0}\n            isMuted={isMuted}\n            resizeMode="cover"\n            usePoster={true}\n            shouldPlay={shouldPlay}\n            onPlaybackStatusUpdate={_onPlaybackStatusUpdate}\n            progressUpdateIntervalMillis={50}\n            isLooping\n            style={videoStyle}\n            posterStyle={videoStyle}\n        >\n        </Video>\n    )\n
Run Code Online (Sandbox Code Playgroud)\n
    \n
  1. 我\xe2\x80\x99ve还尝试使用playbackStatus来查看视频是否已加载或缓冲,并在视频加载或缓冲时有一个活动指示器,但因为我使用状态,所以存在一些滞后。
  2. \n
\n

我对 (2) 的实现如下所示:

\n
const [loaded, setLoaded] = useState(false); \n\nconst _onPlaybackStatusUpdate = playbackStatus => {\n\n    if(playbackStatus.isBuffering){  \n      if(loaded){\n        setLoaded(false); \n …
Run Code Online (Sandbox Code Playgroud)

video video-streaming react-native expo

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

在RTSP流中提供特殊字符密码

我正在使用 vlc 读取 rtsp 流,如下所示:

rtsp://username:password@!@192.168.1.108:15667/cam/realmonitor?channel=30&subtype=0  
Run Code Online (Sandbox Code Playgroud)

用户名是“username”,密码是“password@!”

当我检查消息时,VLC 似乎无法正确读取链接。我的VLC版本是3.0.8。
有没有办法让 VLC 读取提供的流?

vlc rtsp video-streaming

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