将整个YouTube频道嵌入网站的最佳方法是什么?看起来"自定义播放器"生成器最近停产了..
我正在寻找的不只是带滚动条的视频.我想尽可能地复制实际频道的体验(例如参见截图).
任何人对如何实现这一点有任何想法? 
注意:我有一个wordpress网站,并没有看到任何插件?
我需要将触摸事件捕获到MediaController进度滑块,以便MediaPlayer在手指抬离滑块之前不会发生更新.
[也许我的情况很独特:我正在为每个"节目"播放多个"堆栈"的流媒体视频.在上一个堆栈完成之前,不会加载下一个堆栈.滑块需要表示所有堆栈的持续时间,"拇指"的进度需要表示总持续时间.这是很容易通过覆盖完成getBufferPercentage(),getCurrentPosition()以及getDuration()方法MediaPlayerControl]
更有问题的是沿着时间线来回"擦洗"(移动拇指).如果它导致数据源set多次与seekTo每次移动一起,那么事情会很快陷入困境并崩溃.如果MediaPlayer在用户完成擦除之前没有执行任何操作会更好.
正如其他人所写,是的,最好编写我自己的MediaController实现.但为什么要重做所有这些工作呢?我尝试扩展MediaController,但很快就变得复杂了.我只想抓住滑块的触摸事件!
我已经尝试了一段时间,但很挣扎。我有两个项目:
到目前为止,我已经尝试过 ffmpeg 和 ffserver、PulseAudio、mjpegstreamer(我可以正常工作,但没有音频)和 IceCast,但运气都不好。虽然我确定这可能是我的错,但我想知道是否还有更多选择?
我花了一段时间尝试使用 Linux 选项,还想知道最近是否有使用 OpenCV 的 Python 选项。
如果有人可以建议更多选项来研究基于 Python 或 Linux 的内容,我将不胜感激,或者向我指出一些很好的教程或我已经使用过的内容的解释,我将不胜感激。
我正在编写应用程序symfony2,我遇到视频流问题.
如果一个操作需要很长时间才能执行 - 例如1 minute,整个应用程序被冻结(在第二个选项卡中打开时),并且必须等待执行结束.
问题出在哪儿?
//编辑
public function streamAction($fileName) {
$user = $this->get('security.context')->getToken()->getUser();
$request = $this->getRequest();
$uid = $request->get('uid') != 'null' ? $user->getId() : $request->get('uid');
$libPath = $this->_libPath('Users', 'uid' . str_pad($uid, 6, "0", STR_PAD_LEFT));
$file = pathinfo($fileName);
$fileName = $file['basename'];
$fileExt = $file['extension'];
$filePath = realpath($libPath . $fileName);
if (in_array($fileExt, $this->formats['video'])) {
$mime = 'video';
}
if (in_array($fileExt, $this->formats['audio'])) {
$mime = 'audio';
}
$mime .= '/' . $fileExt;
header("Accept-Ranges: bytes");
if (is_file($filePath)) {
header("Content-type: …Run Code Online (Sandbox Code Playgroud) 我有一个多播 UDP 视频流,我需要我的 OPenCV (Emgu) 2.4.x 应用程序来捕获和处理(“客户端”)。
在客户端,我可以使用 VLC(udp://xx.yy.zz.aaa:1234,但是我的应用程序无法捕获这个 udp 流。我的代码很简单(
Capture cap = new Capture ("udp://@212.1.1.1:1234");
Run Code Online (Sandbox Code Playgroud)
ps 我已经尝试过并且 2/o @ 也在该地址上尝试过 rtp。没运气 :-/
OpenCV 是否直接允许“捕获”UDP 流?或者我是否需要在客户端上运行 VLC 以将视频重新传输为 rtp 或 http 或其他......?
谢谢。
我正在尝试基于 gstreamer 构建一个 rtsp 视频服务器。在我的情况下,我需要客户端连接到服务器并开始将视频流式传输到服务器。
我已经阅读了一些关于这个主题的教程,尤其是这个:http : //www.ip-sense.com/linuxsense/how-to-develop-a-rtsp-server-in-linux-using-gstreamer/
在本教程中,视频从服务器流式传输到客户端,我需要更改它,以便视频将从客户端流式传输到服务器。
编辑:在演示中,此管道已启动:
gst_rtsp_media_factory_set_launch (factory, "( "
"videotestsrc ! video/x-raw-yuv,width=320,height=240,framerate=10/1 ! "
"x264enc ! queue ! rtph264pay name=pay0 pt=96 ! audiotestsrc ! audio/x-raw-int,rate=8000 ! alawenc ! rtppcmapay name=pay1 pt=97 "")");
Run Code Online (Sandbox Code Playgroud)
管道从视频和音频测试源开始,并将它们编码为有效载荷 0 和 1。我需要做相反的事情 - 获取 rtsp 有效载荷并对其进行解码。
大家早上好。我正在开发一个 Android 应用程序。我在 logcat 中收到此异常:
06-16 11:42:41.726: WARN/dalvikvm(11429): threadid=13: thread exiting with uncaught exception (group=0x40e61ac8)
06-16 11:42:41.726: ERROR/AndroidRuntime(11429): FATAL EXCEPTION: Thread-2473
CvException [org.opencv.core.CvException: /home/reports/ci/slave/50-SDK/opencv/modules/imgproc/src/imgwarp.cpp:3272: error: (-215) src.cols > 0 && src.rows > 0 in function void cv::warpAffine(cv::InputArray, cv::OutputArray, cv::InputArray, cv::Size, int, int, const Scalar&)
]
at org.opencv.imgproc.Imgproc.warpAffine_2(Native Method)
at org.opencv.imgproc.Imgproc.warpAffine(Imgproc.java:9114)
at com.micaela.myapp.MainActivity.manageRotation(MainActivity.java:416)
at com.micaela.myapp.MainActivity.chooseMode(MainActivity.java:374)
at com.micaela.myapp.MainActivity.onCameraFrame(MainActivity.java:344)
at org.opencv.android.CameraBridgeViewBase.deliverAndDrawFrame(CameraBridgeViewBase.java:381)
at org.opencv.android.JavaCameraView$CameraWorker.run(JavaCameraView.java:323)
at java.lang.Thread.run(Thread.java:856)
Run Code Online (Sandbox Code Playgroud)
我的应用程序使用对象 JavaCameraView 打开视频流,并从中捕获帧,然后在屏幕上显示它们之前,它们会根据设备的方向正确旋转。为此,我在 2.4.5 版本中使用了 OpenCv4Android 库的 warpAffine 函数。
我调用这个函数的方法是:
public void manageRotation(Mat matrix, Display display) {
int …Run Code Online (Sandbox Code Playgroud) 我正在尝试组合/合并两个 rtmp 流,然后将它们发布到另一个流
前任。:
ffmpeg -i rtmp://ip:1935/live/micMyStream7 -i rtmp://ip:1935/live/MyStream7 -strict -2 -f flv rtmp://ip:1935/live/bcove7
Run Code Online (Sandbox Code Playgroud)
场景如下,我得到了一个来自用户麦克风的流,它是第一个(micMyStream7),我也从另一个用户那里得到了一个流,但这个流有音频和视频(MyStream7)。
当用户在说话时,他们正在互相交谈,而另一个人只会在听,反之亦然。
我的想法是建立一个名为 (bcove) 的第三个流,它将“合并”他们两个,这样我就可以让观众只听他们之间的整个对话。
这是 ffmpeg 打印的日志,尽管我无法识别任何帮助我的消息。
paulo@paulo-desktop:~$ ffmpeg -re -i rtmp://ip:1935/live/micMyStream7 -i rtmp://ip:1935/live/MyStream7 -strict -2 -f flv rtmp://ip:1935/live/bcove7
ffmpeg version N-56029-g2ffead9 Copyright (c) 2000-2013 the FFmpeg developers
built on Sep 4 2013 11:05:57 with gcc 4.7 (Ubuntu/Linaro 4.7.3-1ubuntu1)
configuration:
libavutil 52. 43.100 / 52. 43.100
libavcodec 55. 31.100 / 55. 31.100
libavformat 55. 16.100 / 55. 16.100
libavdevice 55. 3.100 / 55. 3.100
libavfilter …Run Code Online (Sandbox Code Playgroud) 我对I,P,B帧及其时间戳有疑问.
我知道RTP数据包的时间戳假设是单调增加的.我也知道(纠正我,如果我错了)在h.264 B_5帧中可以在P_4帧之前发送但在(P_4然后是B_5)之后显示,因此解码器将使用B帧来解码P帧.
我有一个RTP\H.264流的pcap捕获,我可以看到时间戳增加\减少...而不是单调增加.
所以我的问题是什么值的RTP数据包(I,P,B帧)应该在h264传输上得到什么?
我很乐意对此事做一些澄清.
谢谢.
我开发了一个小应用程序,可以录制和播放小视频(最多10秒).该应用程序以6 Mbps的速度捕获视频.为了确保更快的视频播放,我正在尝试实现HLS(http直播).但我注意到应用程序始终首先以最低比特率获取流,并且仅在10秒后才切换到最佳可用流(基于网络带宽).
我测试了不同的媒体播放器,如android媒体播放器,exoplayer等,但行为是一致的.视频仅在10秒后才会更改流.这是android中hls的默认实现吗?还是我错过了什么?我以前测试的m3u8是http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8
localUrl = "http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8";
vidView.setVideoPath(localUrl);
Log.i("GenericRequest", "VideoUrl " + localUrl);
vidView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
vidView.start();
}
});
Run Code Online (Sandbox Code Playgroud) video-streaming http-live-streaming android-mediaplayer android-videoview exoplayer