我目前正在开发一个需要解码UDP多播RTSP流的应用程序.目前,我可以使用ffplay via查看RTP流
ffplay -rtsp_transport udp_multicast rtsp://streamURLGoesHere
Run Code Online (Sandbox Code Playgroud)
但是,我试图使用FFMPEG来打开UDP流(为了简洁起见,错误检查和清除代码被删除).
AVFormatContext* ctxt = NULL;
av_open_input_file(
&ctxt,
urlString,
NULL,
0,
NULL
);
av_find_stream_info(ctxt);
AVCodecContext* codecCtxt;
int videoStreamIdx = -1;
for (int i = 0; i < ctxt->nb_streams; i++)
{
if (ctxt->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO)
{
videoStreamIdx = i;
break;
}
}
AVCodecContext* codecCtxt = ctxt->streams[videoStreamIdx]->codec;
AVCodec* codec = avcodec_fine_decoder(codecCtxt->codec_id);
avcodec_open(codecCtxt, codec);
AVPacket packet;
while(av_read_frame(ctxt, &packet) >= 0)
{
if (packet.stream_index == videoStreamIdx)
{
/// Decoding performed here
...
}
}
...
Run Code Online (Sandbox Code Playgroud)
这种方法适用于由原始编码视频流组成的文件输入,但对于UDP多播RTSP流,它无法执行任何错误检查av_open_input_file().请指教...
我正在使用phonegap/cordova 2.1,我的应用程序具有本地存储的资产(在设备上),需要在构建时加密,并在执行时在内存中解密.该应用仅适用于iPad.
对于我想实现类似于http://codebycoffee.com/2012/01/08/decrypting-http-streaming-video-with-nsurlprotocol的视频,其中mediafilesegmenter用于分割和加密每个视频文件,然后是自定义当视频播放器请求m3u8文件时,加密文件URL协议为每个视频提供密钥.
我的问题是我似乎无法使用html5视频标签和phonegap/cordova播放m3u8文件.我甚至使用mediafilesegmenter作为测试创建了未加密的视频片段.这些可以通过在OSX中使用VLC打开m3u8文件来播放,但是当在phonegap/cordova中使用视频标签时,我会收到"loading ..."消息,然后弹出"无法完成操作"的弹出窗口
我正在尝试使用rtmpgw在本地端口上设置流,使用videoview或其他视频播放器进行访问.我有本机可执行文件设置,它正在工作,但是当我用命令测试它
rtmpgw --sport 8080
Run Code Online (Sandbox Code Playgroud)
它返回以下错误:
HTTP-RTMP Stream Gateway v2.4
(c) 2010 Andrej Stepanchuk, Howard Chu; license: GPL
ERROR: startStreaming, TCP bind failed for port number: 8080
ERROR: Failed to start HTTP server, exiting!
Run Code Online (Sandbox Code Playgroud)
这发生在我试过的任何端口上.如果没有--sport参数,它会尝试端口80并失败.根据我的理解,非特权/非root用户无法在unix中绑定低于1024的端口.既然这是一个虚拟机,它有什么不同?本机可执行文件/静态二进制文件不会在虚拟机外部执行吗?
码:
File rtmp = new File(getFilesDir() + "/rtmpgw");
ProcessBuilder pb = new ProcessBuilder("./" + rtmp.getName(), "--sport", "8080");
pb.directory(getFilesDir());
Process stream = pb.start();
Run Code Online (Sandbox Code Playgroud) 建立一个网站,成员可以将其网络摄像头流式传输到我的服务器,以便其他成员可以查看当前正在流式传输的实时源.
如何获取会员的网络摄像头,将订阅源推送到服务器,然后允许其他人实时查看订阅源?
该网站是基于网络的,用PHP编写,带有MySQL数据库 - 但我愿意添加Javascript,jQuery,Flash或其他任何工作.
我知道这很广泛但真的需要一些指导!
我正在ffmpeg我的笔记本电脑上构建一个简单的命令行来从其相机流式传输.命令行读取(详细信息):
host1> ffmpeg -v verbose \
-f dshow \
-i video="Camera":audio="Microphone" \
-r 30 -g 0 -vcodec h264 -acodec libmp3lame \
-tune zerolatency \
-preset ultrafast \
-f mpegts udp://12.34.56.78:12345
Run Code Online (Sandbox Code Playgroud)
首先,它在本地工作.即,我可以通过ffplay在同一主机上使用来查看输出:
host1> ffplay -hide_banner -v udp://12.34.56.78:12345
Run Code Online (Sandbox Code Playgroud)
现在,当我从同一网络中的另一台机器执行此操作时,无法正常工作.它显示了一个nan进步:
host2> ffplay -hide_banner -v udp://12.34.56.78:12345
nan : 0.000 fd= 0 aq= 0KB vq= 0KB sq= 0B f=0/0
Run Code Online (Sandbox Code Playgroud)
我ncat以前转储原始内容.但是没有输出:
host2>\ncat\ncat -v -u 12.34.56.78 12345
Ncat: Version 5.59BETA1 ( http://nmap.org/ncat )
Ncat: Connected to 12.34.56.78:12345.
(...and nothing …Run Code Online (Sandbox Code Playgroud) 我想在NodeJS中构建一个高可用性和高性能的视频文件服务器和流视频.基本上,我想知道:
请告诉我如何走上正确的道路.
我试图了解HLS分段器如何将MPEG-TS数据包转换为HLS块。HLS块是否封装了几个MPEG-TS数据包,或者它是完全不同的格式并不同于MPEG-TS?例如,我可以检索PCR(节目时钟参考)或其他MPEG-TS特定数据吗?
使用spring boot,我想制作基于RESTful的视频播放器.我的文件浏览器中有.mp4扩展视频.如何通过创建休息端点在前端端提供这些视频?
我试过这种方法.视频可以启动或停止.但它无法向后或向前完成.无法达到所需的时间并开始.
spring video-streaming html5-video spring-boot spring-restcontroller
我必须在大学里做一个视频流Java程序作为一个项目,但是我不知道如何开始!
我必须同时做主服务器端和子服务器端,客户端将是VLC。
因此,我需要帮助:
注意:我更喜欢使用mp4视频,但可以使用任何我想使用的视频。
谢谢
video-streaming ×10
video ×4
ffmpeg ×2
streaming ×2
android ×1
android-ndk ×1
cordova ×1
html5-video ×1
ios ×1
java ×1
media ×1
mpeg2-ts ×1
multicast ×1
node.js ×1
objective-c ×1
php ×1
rtmp ×1
server ×1
spring ×1
spring-boot ×1
tcp ×1
udp ×1
viewing ×1
webcam ×1