我正在尝试创建一个实时广播音频和视频的 RTSP 客户端。我在链接http://www.gdcl.co.uk/downloads.htm修改了 iOS 代码,并且能够正确地将视频广播到服务器。但现在我在播放音频部分时遇到问题。在链接示例中,代码的编写方式是将视频数据写入文件,然后从文件中读取数据并将 NALU 的视频数据包上传到 RTSP 服务器。
对于音频部分,我不知道如何继续。现在我尝试的是从麦克风获取音频缓冲区,然后通过添加 RTP 标头和 ALU 直接将其广播到服务器。但是这种方法无法正常工作,因为音频开始滞后,并且滞后随着时间的推移而增加。有人可以让我知道是否有更好的方法来实现这一点并使用 lip sycn 音频/视频。
我已将 libjingle 库用于 webrtc android 应用程序。我已经成功实现了双向通信的音频视频流。
到目前为止,我一直使用前置摄像头进行视频流,但现在我想为用户提供选项,以选择前置或后置摄像头进行视频流。
我怎样才能存档它?我对此一无所知。
我尝试过VideocaptureAndroid切换相机方法但不起作用。
如果有人知道的话可以帮我解决这个功能吗?
提前致谢。
我正在寻找一种方法来将 Twitch 流“通过管道”(抱歉,如果我在这里滥用术语)将其传输到正在传输的文件中。我知道可以在流完成后下载 VOD,但这不适用于我的用例。
我看过一个名为streamlink的库,它可以让我获得给定流的确切URL,但我有点迷失了从这里去哪里
我想每 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 文件。我应该吗
我应该使用OpenCV还是有更简单的解决方案?
使用OpenV
我正在使用 ffmpeg 作为视频过滤器。
但是,当我改变视频速度时,我遇到了问题
音频比视频长:
ffmpeg -i INPUT.mp4 -filter:v setpts=0.5*PTS -shortest -y -preset ultrafast OUTPUT.mp4
Run Code Online (Sandbox Code Playgroud)我想将音频的长度设置为与视频的长度相同。
就我而言,shortest不起作用。视频文件和音频文件,都是不同的,然后合并成一个视频文件。视频的最后一帧停止,音频继续工作。
我正在制作一个简单的 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) 我有一个网络摄像头的流 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 循环?还有别的事吗?
现代时代已经成为视频流\xe2\x80\x94,无论是直播还是录制视频。
\n在学习过程中,我确实遇到了问题主题中提到的各种协议。协议越多,用例就越有趣;话虽如此,我无法找到适当的比较评估和用例。
\n有人可以帮助了解用例和关键差异,以便了解何时使用哪个?
\n另外,有什么统一的协议可以在浏览器、桌面应用程序和移动应用程序(Android 和 iOS)中显示流吗?
\n提前致谢。
\n我想问一下在 Expo / React Native 上处理视频加载的最佳方法是什么。
\nExpo 对于处理视频/音频的视频和 AV 组件有很好的文档:\n https://docs.expo.io/versions/latest/sdk/video/ \n https://docs.expo.io/versions/最新/sdk/av/
\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 )\nRun Code Online (Sandbox Code Playgroud)\n我对 (2) 的实现如下所示:
\nconst [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) 我正在使用 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 读取提供的流?
video-streaming ×10
android ×1
asp.net-core ×1
c# ×1
camera ×1
expo ×1
ffmpeg ×1
frame-rate ×1
html5-video ×1
httpserver ×1
ios ×1
java ×1
libjingle ×1
objective-c ×1
opencv ×1
python ×1
react-native ×1
rtsp ×1
rtsp-client ×1
screenshot ×1
twitch ×1
video ×1
vlc ×1
webrtc ×1