情况: 我有一个连接到树莓派的 basler 摄像头,我正在尝试使用 FFmpg 将其馈送直播到我的 Windows PC 中的 TCP 端口,以便监视摄像头前面发生的情况。
有效的事情: 我设法在树莓派上设置一个Python脚本,它负责记录帧,将它们输入管道并将它们流式传输到TCP端口。从该端口,我可以使用 FFplay 显示流。
我的问题: FFplay 非常适合快速轻松地测试您前进的方向是否正确,但我想“读取”流中的每一帧,进行一些处理,然后使用 opencv 显示流。那,我还做不到。
最低限度地表示,这是我在树莓派方面使用的代码:
command = ['ffmpeg',
'-y',
'-i', '-',
'-an',
'-c:v', 'mpeg4',
'-r', '50',
'-f', 'rtsp',
'-rtsp_transport',
'tcp','rtsp://192.168.1.xxxx:5555/live.sdp']
p = subprocess.Popen(command, stdin=subprocess.PIPE)
while camera.IsGrabbing(): # send images as stream until Ctrl-C
grabResult = camera.RetrieveResult(100, pylon.TimeoutHandling_ThrowException)
if grabResult.GrabSucceeded():
image = grabResult.Array
image = resize_compress(image)
p.stdin.write(image)
grabResult.Release()
Run Code Online (Sandbox Code Playgroud)
在我的电脑上,如果我在终端上使用以下 FFplay 命令,它就会工作并实时显示流:
ffplay -rtsp_flags listen rtsp://192.168.1.xxxx:5555/live.sdp?tcp
在我的电脑上,如果我使用以下 python 脚本,流就会开始,但它在函数中失败,cv2.imshow因为我不确定如何解码它:
import subprocess
import cv2
command …Run Code Online (Sandbox Code Playgroud) youtube-dl可用于查看使用什么格式存储 YouTube 内容:
youtube-dl -F https://youtu.be/??????
Run Code Online (Sandbox Code Playgroud)
上面的命令提示音频和视频大多是分开存储的。这样对吗?YouTube 流媒体是否实时结合音频和视频?
我当前正在解析 MPEG-DASH 流初始化段(由 FFMPEG 生成),我注意到时间刻度是在我的文件中的多个不同位置指定的:
为什么在这么多不同的地方指定它?为什么他们有不同的价值观?这些价值有等级吗?例如,60 是否会覆盖 15360,15360 是否会覆盖 1000?
这是我用来生成我正在查看的文件的命令:
ffmpeg -f v4l2 -pixel_format yuyv422 -vcodec rawvideo -framerate 30 -video_size 640x360 -i /dev/video0 \
-f dash -remove_at_exit false -use_template true -use_timeline true -streaming true -window_size 5 -extra_window_size 5 -seg_duration 5 -vcodec libx264 -b:v 1M -maxrate 1M -bufsize 2M -pix_fmt yuv420p -r 30 -s 640x360 -aspect 16:9 /var/www/html/media/live.mpd
Run Code Online (Sandbox Code Playgroud) 我想创建一个用于使用 flutter 流式传输实时视频的应用程序,所以我做了一些研究来做到这一点,我发现 SDK 称为 mux 和另一个称为 agora ,所以这里的问题是 mux 和 agora 之间有什么区别?在 flutter 中流式传输实时视频的最佳方式是什么?还有其他 SDK 用于此目的吗?
我正在编写一个视频应用程序,该应用程序可以播放来自网络的流式视频,并且正在使用AV播放器来播放。我的问题是我如何找出预先缓冲了多少视频内容,在MPMoviePlayerController中可以看到UISlider上缓冲的内容量。我想使用AV Player演示相同的内容,并且还可以更改预缓冲内容的数量。
我的理想情况是-用户使用我的应用流式传输电影文件,如果他暂停播放按钮,则电影会像您观看youtube视频一样继续缓冲。
请帮忙 !!
谢谢。
iphone avfoundation video-streaming http-live-streaming avplayer
这仅适用于所有版本的Android中的某些特定视频文件(例如此文件),但是在iOS或WP甚至使用Vitamio插件在Andorid中播放时,它是可搜索的。我认为流视频文件必须满足一些条件才能被查找。那正确吗?如果是这样,请告诉我什么条件才能制作流式视频。谢谢。
当我尝试寻找上述文件的未缓冲位置时,这是错误日志。
12-06 12:01:50.705: E/MediaPlayer(909): Error (1,-1007)
Run Code Online (Sandbox Code Playgroud) 我正在试用chrome.desktopCapture.chooseDesktopMediaChrome扩展程序,我可以得到一个桌面流就好了.
我使用以下内容将流转换blob:为后台脚本中的-URL,如下所示:
var objectUrl = URL.createObjectURL(stream);
Run Code Online (Sandbox Code Playgroud)
我似乎无法解决的是如何将其设置为注入页面上视频元素的src属性.
我尝试了以下,每个都不起作用:
var video = document.getElementById("video");
var objectUrl = URL.createObjectURL(stream);
video.src = objectUrl;
Run Code Online (Sandbox Code Playgroud)
//objectUrl is a string received in a message from the background page by the content page
var video = document.getElementById("video");
video.src = objectUrl;
Run Code Online (Sandbox Code Playgroud)
我在javascript控制台中获得以下内容:
不允许加载本地资源:blob:chrome-extension:// panahgiakgfjeioddhenaabbacfmkclm/48ff3e53-ff6a-4bee-a1dd-1b8844591a91
如果我将消息中的URL一直发布到注入页面,我也会得到相同的结果.这有用吗?我真的很感激这里有任何建议.
在我的清单中我也有,
"web_accessible_resources": [ "*" ]但这只是为了看它是否解决了这个问题(它没有).
google-chrome video-streaming google-chrome-extension screensharing
我为Android编写了一个应用程序,以便可以从SAT接收器流式传输文件。像mkv(从我的PC上复制)之类的文件可以正常工作(带有DTS的文件除外->我希望这将在以后的更新中提供)。
但是,当我想流式传输ts文件(来自Sat-Receiver的录制文件)时,我的Chromecast加载并加载或崩溃。从我的Chromecast调试器控制台返回我:无法加载元数据。
因为mkv文件可以在同一位置正常工作,所以我认为TS文件存在问题。
您可以在此处找到示例TS文件:https : //drive.google.com/file/d/0B7pcAkvWOZoNZ0RsSVVUUFNrZlk/view
也许有人可以向我解释文件为什么会出问题。
编辑
这是谷歌的答案:
目前不支持直接在HTML视频元素中播放ts文件。但是,支持属于HLS流的ts文件。有关支持的媒体的更多详细信息,请参阅以下链接:https : //developers.google.com/cast/docs/media
但是我如何制作HLS流?
我有一个我正在构建的视频播放器需要播放HLS直播和点播流.
它似乎只在Safari中正常工作.(减去我需要更新的自定义样式,忽略它)在所有其他浏览器中,我收到此错误:
VIDEOJS: ERROR: (CODE:4 MEDIA_ERR_SRC_NOT_SUPPORTED) The media could not be loaded,
either because the server or network failed or because the format is not supported.
我错过了什么?看起来非常类似于contrib-hls演示页面实现,它在所有浏览器中都可以正常运行.
这是回购:https: //github.com/adult-swim/adult-swim-video-player和要看的分支是feature-latest-versions
为了测试我实际上在这里使用来自videojs-contrib-hls演示页面的下载视频:http://videojs.github.io/videojs-contrib-hls/
这是我在初始化VideoJS的地方:https://github.com/adult-swim/adult-swim-video-player/blob/feature-latest-versions/app/scripts/views/adult-swim -视频- player.js#L56
这是代码的两个编译版本:
http://www.adultswim.com/dev/as-player/ - on demand
http://www.adultswim.com/dev/as-player-live/ - live
我正在使用这些版本:
video.js:5.5.2
videojs-contrib-hls:1.3.4
videos-contrib-media-sources:2.4.4
如何限制FFMPEG中的转码视频的比特率以将其保持在限制值以下?
video-streaming ×10
ffmpeg ×3
video ×2
agora.io ×1
android ×1
audio ×1
avfoundation ×1
avplayer ×1
dart ×1
flutter ×1
google-cast ×1
iphone ×1
m3u8 ×1
media-player ×1
mp4 ×1
mpeg-dash ×1
opencv ×1
python ×1
seek ×1
subprocess ×1
timing ×1
transcoding ×1
video.js ×1
youtube ×1