我正在开发php的在线视频流网站. 我需要两个功能: 需要动态地在视频的底部添加标题/文本. 需要动态地添加背景音乐. 可以使用PHP或任何可用的开源库? 任何人可以指导我或提供此类图书馆的链接? 谢谢. 解决方案 使用PHP编辑视频是一个非常糟糕的主意.这个想法非常接近不可能.充其量您需要解码php中残酷慢的视频. 如果我必须解决这个问题,我会尝试在播放器中添加标题和背景音乐,而不是在视频文件本身中添加.如果您正在流式传输视频,则可能是您使用Flash或其他一些客户端播放器.您需要编写播放器(或者修改现有的播放器,有几个可用)才能在电影的顶部添加另一层,并为标题添加音频. 使用CSS和JavaScript在播放器顶部生成的透明图像,将透明的图像分层,但比在PHP中重写视频更容易,但仍然比重写视频更容易,然后将音频嵌入页面中.本段包含一个可怕的想法. 其他解决方案 您可以在Flash中制作自己的播放器并添加默认的水印.您不需要P
以下是关于 video-processing 的编程技术问答
在我的应用程序中,我正在渲染从用户照片中检索到的图像中生成的视频.我已经设置了一个带有AvassetWriterInput的AvassetWriter,上面有AvassetWriterInputPixelBufferadaptor.我能够将我从用户库中检索到的Alexet对象转换为CVPixelBuffers,然后将它们添加到视频中,然后将其保存为MP4.将所有图像添加到视频中是在背景线程上完成的,该背景线程将通知发送到每个帧的主线程,因此可以更新接口.所有这些都很好,我从应用程序中获得了一个可用的电影文件. 我现在的问题是,当用户再次进入另一个应用程序时,AnalassetWriter的状态更改为"失败",我将无法在电影文件中添加更多图像.首先,我认为一旦应用再次开始活跃,我可能必须结束当前的作者会议,并重新开放新的会议,但这似乎无济于事. 我只是想知道当我希望用户输入其他应用程序时,一般方法将如何.最好的解决方案是,如果渲染可以在后台继续进行.我想我需要一个来自uiapp
我有使用diff创建视频文件的方案.诸如图像,音频文件之类的资产. 我想做的是,从特定文件夹中找到音频文件,并将其设置为背景音乐,并从特定文件夹中获取图像,然后一一显示这些图像. 基本上我有图像和音频文件,我想使用php使用这些资产创建一个视频文件. 任何人都可以建议这样做的起点吗?已经从视频中捕获了图像并使用FFMPEG转换视频,因此我想到了FFMPEG,但是,我认为它不允许创建视频. 解决方案 ffmpeg Will 允许您从静止图像创建视频. 例如,从图像001.jpg .. 999.jpg: 创建一个带有10fps帧速率的视频. ffmpeg -r 10 -b 1800 -i %03d.jpg test1800.mp4 您可以使用Mux流(音频和视频),例如(添加相关的编解码器选项,等等) ffmpeg -i video.mp4 -i audio.wav -map 1.1 -map 2.1 output.mp4 我不会更详细地详细
假设我有10张图像,我想将这些图像组合在幻灯片之类的视频中. 例如,我想显示每个图像5秒钟,然后继续下一个图像再进行5秒钟. 如果可能的话,也将包括音乐和一些描述性文本. 是否有示例代码可能是ffmpeg库? 解决方案 我的第一个想法是用这样的东西将ffmpeg命令弹出. 从图像创建视频 ffmpeg可用于将几张图像拼成视频中. 有很多选择,但是以下示例应该足以 开始.它采用所有具有文件名的图像 xxxxx.morph.jpg,其中x是数字的,并创建了一个称为的视频 " output.mp4". QScale选项指定图片质量(1是 最高和32是最低),并且" -r"选项用于 指定每秒帧数. ffmpeg -r 25 -qscale 2 -i%05d.morph.jpg output.mp4 (此上班的网站已经消失了.链接 已删除.) 其中25个表示每秒25张图像.您可以将其设置为1个(1秒)的延迟或使用小数,即:0.5延迟2秒.
我有一个网页,该网页(除其他外)需要从用户删除视频中提取特定的框架.用户在播放器中寻求.mp4的特定部分,然后单击一个按钮,然后将Ajax调用发射到php脚本上,该脚本为.mp4以及视频的确切时间,并使用该脚本来提取. "缩略图"框架. 我当前的解决方案是使用php exec命令: exec("ffmpeg -i $videoPath -ss $timeOffset -vframes 1 $jpgOutputPath"); ...它的效果很好,除了它和糖蜜一样慢.我的猜测是,FFMPEG对这项工作来说太多了,我也许可以通过利用基础库或其他东西来做得更好...但是我的想法为零. . 理想情况下,我不想安装任何需要真正的"安装过程"的东西...即,使用我的Web应用程序将可执行文件放入文件夹是可以的,但是我宁愿实际运行安装程序.另外,该解决方案应能够在Mac,Linux和Windows上运行(尽管Linux是当务之急). 我该怎么做才能加快此过程? 谢谢.
我在URL的视频中播放视频...一切正常,甚至视频播放 ,但唯一的问题是,视频需要将近10秒的时间才能开始播放,这可能会使用户 有点烦人 我尝试了不同的URL,并且视频为360p和6秒长 是默认的媒体播放器吗? 我有堆栈溢出,但找不到合适的答案,并且曾经搜索过各种3派对视频库,但找不到一个 甚至尝试了Google的埃法列库,但我的视图中的文档不太好 有什么解决方案如何克服这个问题? 我的代码 public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main);
我想比较视频.通过编码C程序来比较质量(非模糊).有人告诉我了解DFT(离散的傅立叶变换)进行图像分析,并使用FFT或DFT工具来了解相同图像的模糊与详细的(非Blurry)副本之间的区别. (复制从>其他问题): 假设我们有不同的视频质量的文件,一个非常清楚,另一个是模糊的,一个是粗糙的.基本上逐帧比较所有文件,并向用户报告具有更好质量的用户. 所以任何人都可以帮助我吗? 解决方案 假设我们有各种视频质量不同的文件: 一个是极其clear,另一个是blurred,一个是rough colors. 基本上逐帧比较所有文件,并向用户报告具有更好质量的用户. (1)颜色质量检测... 要检查哪种具有更好的颜色,您可以分析测试图像的直方图.直方图将是多少像素具有强度 X 的计数.其中 X 是0范围范围255之间的数字(因为每个红色,绿色和蓝色通道每个都容纳256个可能的强度). 在线上有许多有关如何创建直方图的教程,因为它是计算机图形中的
我有一些代码产生一系列灰度图像.然后,我能够将图像单独保存在循环中,并使用colormap保存它们.即. file = sprintf('image_%04d.png',x); imwrite(image1,jet,file,'png'); 所以我将图像从另一端拿出来,并且它们具有正确的结肠胶结,即colormap(Jet). 但是,在下一个程序中,我尝试将这些图像拼凑在一起以形成一个简短的动画(是的,我知道我应该在与上面的同一循环中制作电影),我会得到一部灰度电影!!!当源图像颜色时,这是如何发生的? 进一步,我注意到,如果我加载单个图像,然后键入: imshow(A) 我也得到了灰度图像!但是如果我打字: image(A) 它给了我我想要的东西,这是结实的图像. 为什么这样做? 我该如何获得与正确的Colormap制作电影? 在保存图像之前,有什么方法可以将colormap添加到图像中(如上所述,我在IMWRITE期间添加地图)?
aim :检测运动,并仅保存具有起始时间名称的文件中的运动时间. 现在,我遇到了有关如何使用视频启动时间将视频保存到文件的问题. 我测试的内容 : 我按部分测试了我的程序.除保存部分外,每个部分似乎都可以正常工作. 运行状态 :没有错误.但是在保存文件夹中,没有视频.如果我使用静态保存路径,则视频将成功保存,但是视频将被下一个视频所覆盖.我的代码在下面: import cv2 import numpy as np import time cap = cv2.VideoCapture( 0 ) bgst = cv2.createBackgroundSubtractorMOG2() fourcc=cv2.VideoWriter_fourcc(*'DIVX') size = (int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)), int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))) n = "start_ti
我尝试了以下命令来从视频中提取音频: ffmpeg -i Sample.avi -vn -ar 44100 -ac 2 -ab 192k -f mp3 Sample.mp3 但是我得到以下输出 libavutil 50.15. 1 / 50.15. 1 libavcodec 52.72. 2 / 52.72. 2 libavformat 52.64. 2 / 52.64. 2 libavdevice 52. 2. 0 / 52. 2. 0 libavfilter 1.19. 0 / 1.19. 0 libswscale 0.11. 0 / 0.11. 0 libpostproc 51. 2. 0 / 51. 2. 0 SamplE.avi: Invalid data found when processing input 有人可以帮忙吗? 解决方案 提取音频流而无需重新编码: ffmpeg -i input-v
我在SignalR中工作,我想通过将视频文件分为不同的零件将视频文件从一个客户端发送到另一个客户端. 我已经通过拆分图像SRC数据发送了图像,并在另一个客户端接收了图像. document.getElementById("fileUpload").addEventListener("change", readImage, false); function readImage() { if (this.files && this.files[0]) { var FR = new FileReader(); FR.onload = function (e) { var img = new Image(); img.onload = function () {
我试图用另一个视频叠加视频.我遵循原始命令OP发布在这里.它有效,但它覆盖了视频时间0: ffmpeg -i 720480.mp4 -i sdbug.mov -filter_complex "[0:0][1:0]overlay[out]" -shortest -map [out] -map 0:1 -pix_fmt yuv420p -c:a copy -c:v libx264 -crf 18 new.mp4 我尝试了正确的答案来指定一个时间,但是它对我不起作用:1)覆盖层始于第二个12,而2)覆盖层完成后没有播放视频. ffmpeg -i 720480.mp4 -i sdbug.mov -filter_complex "[1:v]setpts=PTS+10/TB[a]; [0:v][a]overlay=enable=gte(t\,5):shortest=1[out]" -map [out] -map 0:a -c:v libx264 -crf 18 -pix_fmt
程序员有什么办法将数据直接写入视频内存?我知道操作系统对此非常严格,但是某些类型的应用程序(例如播放器或计算机游戏)如何将其数据直接写入视频记忆中. 我知道有很多众所周知的库(例如OpenGl);但是它们毕竟只是普通的库,它们与我和您写的程序之间没有根本的区别. 解决方案 我知道有很多众所周知的库(例如OpenGl);但是它们毕竟只是普通的库,它们与我和您写的程序之间没有根本的区别. 哦,它们与"普通库"完全不同. 以OpenGL为例.其中的一部分是DLL左右,以便您加载.但是其中一部分是"驱动程序"或"图形驱动程序".这根本不是一个"普通库";从根本上讲,这是操作系统的一部分.基本上,这是操作系统制造商写作的其他人的一部分. 系统定义了驱动程序的接口,硬件制造商提供了适合该接口的驱动程序库.但这不是普通用户能够提供的东西,大多数游戏也不会通过安装自己的图形驱动程序来运行. 驱动程序的目的是为OS和OS客户端提供图形硬件的统一接口.不同的硬件是不
我试图在视频的每个帧上绘制一个位图作为覆盖层.我找到了一个有关如何解码和编码视频的示例,并且它正在工作.此示例具有带有drawFrame函数的Texturerenderer类,我需要修改,以添加位图.我是OpenGL的新手,但我了解到我需要用位图创建纹理并绑定它.我在以下代码中尝试了这一点,但正在抛出例外. /* * Copyright (C) 2013 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0
我一直在尝试在我的iOS应用程序中实现FFMPEG几周.现在,我可以播放几个AVI文件,但是其他文件(例如FLV,WMA,MP4 ...播放速度慢). 我花了很多时间在FFMPEG和OpenGL上,但我找不到解决方案. 我正在寻找其他替代方案来在iOS设备上播放此文件. 有人知道我可以用来播放此文件的其他库,框架.无论他们是否有业务许可证. 非常感谢, 编辑: inithnder: shader = [[GLShader alloc] initWithFileName:@"render" attributes:[NSDictionary dictionaryWithObjectsAndKeys: [NSNumber numberWithInt:0], @"pos
我正在寻找最快的方法来解码iPhone上本地的MPEG-4视频帧.我只是对每10帧中像素的亮度值感兴趣.我不需要在任何地方渲染视频. 我已经尝试了FFMPEG,AvassetReader,ImageAssetGenerator,OpenCV和MPMoviePlayer,但它们都太慢了.我能获得的最快速度是〜2倍(一分钟内扫描2分钟的视频).我想要更接近10倍的东西. 假设我的尝试没有使用GPU,是否有任何方法可以通过在GPU上运行的东西来实现我的目标? OpenGL似乎主要用于渲染输出,但我认为它用作传入视频的过滤器.也许这是一个选择? 预先感谢! 解决方案 如果您愿意使用仅iOS 5解决方案,请查看2011年WWDC会话中的示例应用程序Chromakey. 该演示从内置摄像头捕获了30 fps的视频,并将每个帧传递到OpenGL作为纹理.然后,它使用OpenGL来操纵框架,并选择将结果写入输出视频文件. 该代码使用一些严重的低级魔术来绑定核心视频像
我试图了解该色度钥匙过滤器的工作原理. Chroma Key(如果您不知道)是绿色屏幕效果.有人可以解释其中一些功能是如何起作用的以及他们在做什么? float maskY = 0.2989 * colorToReplace.r + 0.5866 * colorToReplace.g + 0.1145 * colorToReplace.b; float maskCr = 0.7132 * (colorToReplace.r - maskY); float maskCb = 0.5647 * (colorToReplace.b - maskY); float Y = 0.2989 * textureColor.r + 0.5866 * textureColor.g + 0.1145 * textureColor.b; float Cr = 0.7132 * (textureColor.r - Y); float Cb = 0.5647 * (textureColor.b