Articles of video

videostream在轨道4.2

我不知道这是一个编程问题或Web服务器configuration问题。 video文件不public/因此请求必须通过控制器。 在我的控制器中: def play_video video=Video.find params[:id] response.headers['Content-Length'] = File.size(video.path).to_s send_data File.read(video.path,mode: 'rb'), type: video.mime_type, disposition: 'inline' 结束 在客户端,我现在正在使用JPlayer 。在Linux上开发和生产的Firefox运行正常,我可以向前或向后跳转,没有问题。 在Linux和Windows上的其他所有浏览器上,它都能正常播放,但在开发和制作过程中却没有跳过前进或倒退。 我会把它放到一个JPlayer错误,但我得到了完全相同的行为,只有<video> with control attribute ,以及mediaelement.js 。 在开发中,我使用Thin ,生产Passenger和Nginx 。 nginx.conf: worker_processes 4; events { worker_connections 1024; } sendfile on; #tcp_nopush on; http { passenger_root /usr/local/lib64/ruby/gems/2.2.0/gems/passenger-5.0.11; passenger_ruby /usr/local/bin/ruby; keepalive_timeout 120; gzip on; server { server_tokens […]

上传的video不在手机浏览器中播放,而是在桌面浏览器上播放

我build立了一个服务器(gunicorn和nginx),用Python / Django上传video,并在浏览器中观看。 我使用的video播放器是videojs。 所有的video都是h.264 mp4。 video大小在5-40 MB之间。 video上传很好,我也可以在桌面和笔记本电脑浏览器上观看上传的video。 问题是我无法在移动设备上观看相同的video(在桌面浏览器上播放)。 我得到这个错误: 无法加载此video,因为服务器或networking发生故障或者由于格式不受支持。 哪里不对? 更新 不过,我在手机上使用webmvideotesting了移动浏览器,而Opera和Chrome则完美地播放了video。 这是我用于webm的命令: ffmpeg -i test2.mov -codec:v libvpx -quality good -cpu-used 0 -b:v 600k -maxrate 600k -bufsize 1200k -qmin 10 -qmax 42 -vf scale=-1:480 -threads 4 -codec:a vorbis -b:a 128k -strict -2 test2_webmmm.webm 而这个H.264 MP4(只有工作的Firefox): ffmpeg -i inputfile.avi -codec:v libx264 -profile:v baseline […]

使用RTMP实时videoffmpeg延迟

我有一个我想通过RTMP广播的videostream。 我使用ffmpeg来做到这一点,使用下面的命令: ffmpeg -i http://192.168.1.77:18000/stream.flv -c copy -f flv rtmp://localhost/myapp/mystream 据我所知,转码videostream会引入一些延迟。 所以我的问题是:是否有可能通过使用此ffmpeg命令(副本)引入输出stream中的延迟? 附注:我试图将我的实时videostreamredirect到一个nginx服务器,以便(通过RTMP)播放几个jwplayers。 到目前为止,我得到了1秒的延迟和一些帧,我想知道是否有可能减less它。

在embedded式设备上从相机stream式传输video的最佳方式是什么?

我正在使用三星S3C6410开发一个video(目前没有同步video和audio的好解决scheme)stream应用程序。 我打算把这个电路板放在一个小型的机器人车上,然后通过3Gnetworking将video从摄像机传回给我。 到目前为止,我尝试的最好的解决scheme是mjpg_streamer。 这是一个很好的开源项目,它做它承诺的事情。 但让我失望的是,performance还不够好。 它使用HTTP作为videostream的方式,导致大量的浪费带宽。 我的1280x720videotesting结果超过1MB / s,而640x480videotesting结果大约是300KB / s。 它不会在同一时间stream式传输audio。 我发现Mjpg-streamer项目正在开发用于RTSPstream式传输的模块,但还远没有完成。 所以我想知道是否有开源项目符合我的要求(带宽效率,同时streamaudio,但不一定只用一个软件解决)。 任何帮助表示赞赏。

可以使用v4l2从同一设备读取audio和video吗?

我有一个捕获卡,捕捉带embedded式audio的SDIvideo。 我有一个Linux驱动程序的源代码,我正在尝试增加video4linux2支持。 我的改变是基于vivi的例子。 我遇到的问题是,我可以find的所有例子只处理video或只处理audio。 即使在客户端,一切似乎都认为v4l只是video,就像ffmpeg的libavdevice一样。 我是否需要让我的驱动程序创build两个独立的设备,一个v4l2设备和一个alsa设备? 这似乎使保持audio和video同步的工作困难得多。 我更喜欢某种方式来传递驱动程序和应用程序之间的每个缓冲区(通过v4l2的mmap接口)包含一个帧,加上一些audio匹配(相对于时间)与该帧。 或者可能让每个缓冲区都包含一个标志,指示它是video帧还是audio块。 然后可以使用缓冲区上的时间戳来进行同步。 但是我没有看到用V4L2 API规范来做到这一点,也没有看到任何从单个设备读取audio和video的支持v4l2的应用程序(gstreamer,ffmpeg,transcode等)的例子。

在video文件中查找audio峰值

我有一堆我想要处理的video文件。 我想编写一个程序,可以find每个文件中的audio峰值,并返回出现这些峰值的时间。 我已经用不同的语言查找了很多不同的API,但无法让它们工作。 我偏向于PHP和Java,所以如果有人知道这些语言中的任何良好的audio处理库将是伟大的! 但是我真的不关心这门语言。 我需要在cron上运行这个程序。 另外,是否可以使用系统调用ffmpeg从一个脚本来完成这个? 提前致谢。

FFMPEG – 声音启用时文件大小为零

我有一些使用FFMPEG从命令行转换video文件的问题。 我正在使用CentOS服务器,但不幸的是我没有shell访问权限。 当我用下面的命令压制声音时,一切都很完美(当然除了没有声音!) ffmpeg -i $infile -an test.flv 但是,当我尝试以任何方式启用声音时,正在输出的文件的文件大小为零kb。 编译支持libmp3lame和libfaac的FFMPEG,并安装必要的编解码器。 这里是服务器上的FFMPEG的configuration: FFmpeg版本SVN-rUNKNOWN,版权所有(c)2000-2007 Fabrice Bellard,等人。 configuration:–prefix = / usr –libdir = / usr / lib –mandir = / usr / share / man –incdir = / usr / include / ffmpeg –enable-libmp3lame –enable-libogg –enable- libvorbis –enable-libogg –enable-libtheora –enable-libfaad –enable-libfaac –enable-libgsm –enable-xvid –enable-x264 –enable-liba52 –enable-liba52bin –enable- pp […]

跨平台的多媒体信息亭

我的团队的任务是构build一个全屏幕的亭式应用程序来播放媒体文件。 最初,我们需要支持WMV / MP4以及一些完整的1080p图像,尽pipe下面我们需要扩展它以涵盖其他格式(不同的video格式以及HTML,SWF等的显示)。 该应用程序还包含一个体面的块业务逻辑有关的调度,日志logging,性能监测以及networking代码通过Web服务(或可能是TCP)与中央服务器交谈,并可能作为服务器本身。 对于我们的WMV / MP4video播放,硬件加速将是一个巨大的好处。 目标硬件有弱的CPU,但强大的显卡。 下面是kicker:我们是一个.NET商店(我们现有的应用程序是一个WinForms智能客户端),并且在C#和.NET堆栈中经验丰富且高效。 该应用程序最初将面向Windows Embedded(.NET 3.0), 但我们也将很快需要Linux版本。 在我们之间,我们有一些C / C ++的经验和一些Linux的经验,但我们并不期望在该平台上有良好的生产力。 所以我在以下几点上特别提出build议: video。 在Windows上,我们已经看到了使用DirectShow.NET取得的成功。 在有能力的硬件上,WPF MediaElement似乎也performance良好。 我们应该在Linux上使用什么? libavcodec似乎是一个普遍的select。 在Linux上的NVidia显卡上硬件加速吗? 我们还有什么其他select在Linux上? 有什么跨平台的,我可以考虑? 堆栈。 a)理想情况下,我们可以将所有东西写在.NET中,然后在Linux上的Mono下运行。 Mono上不支持video播放和其他一些组件(如性能监视)。 我想我们可以重写这些元素,比如C ++; 但我猜测业务逻辑方面的大多数东西都可以工作。 b)也许最好是在Windows版本上放弃我们的前期生产力,以便跨平台出门。 那Java呢? 那里的video有不同的select吗? 另一个框架呢? 像QT的东西? 任何人都可以提出一些跨平台的东西吗? 一般来说,根据要求,你会用什么? 我很感激你可能拥有的任何一个。

理解“/ dev / video”的输出

我试过编写一个简单的应用程序,它应该检测来自/ dev / video设备的像素差异。 像运动一样。 我不知道/ dev / video设备是如何工作的,所以大部分都是猜测。 我发现,似乎(从特定的networking摄像头)的数据可以分为8192字节的部分。 我假设每个代表一个框架。 每个“帧”的前+600字节与前一帧相同。 我怎样才能解释这些数据成为一个可以理解的像素matrix? 参考的程序代码: #!/usr/bin/ruby # calculates a percentage difference between two array's def percentage_difference( arrayA, arrayB ) top_size = arrayA.size > arrayB.size ? arrayA.size : arrayB.size diff_elements = 0; 0.upto( top_size – 1 ) do |i| diff_elements += 1 unless arrayA[i] == arrayB[i] end […]

使用16位有符号格式打开简历无法正常工作裁剪和重新调整图像的大小

我试图做一个块,可以在图像中放大一部分。 为了做到这一点,我正在使用OpenCV(我是新来的)。 我的问题是,每当我运行使用16位有符号(cv_16sC1)的函数,我得到错误OpenCV错误:不支持的格式或组合格式()在cvGetRectSubPix,文件/media/virtex4/re/OpenCV-2.4.0/modules /imgproc/src/samplers.cpp,第573行。 首先,是否有人知道这个函数是否确实能够在这个位深度上工作? 有没有办法找出答案? cv::Mat image_1_in(video_frame->_width, video_frame->_height, CV_16SC1, video_frame->GetPointerToYLine(0)); cv::Mat image_1_out(video_frame->_width, video_frame->_height, CV_16SC1, video_frame_out->GetPointerToYLine(0)); cv::Mat temp_image; getRectSubPix(image_1_in, cv::Size(100, 200), cv::Point2f(200, 200), temp_image); resize(temp_image, image_1_out, Size(video_frame_out->_width, video_frame_out->_height)); 这是许多尝试中的每一个给出相同的错误之一(直到我改变了格式为CV_32f没有给出错误)…