我已经找到了如何使用jquery暂停和播放视频
$("video").get(0).play();
$("video").get(0).pause();
Run Code Online (Sandbox Code Playgroud)
但我找不到静音按钮,如果没有jquery解决方案,我只是一个onclick js解决方案.我尽快需要它.
还有办法解决静音延迟吗?我希望它在单击按钮后立即静音/取消静音.
我有一个网页,其中(除其他外)需要从用户上传的视频中提取特定的框架.用户在播放器中寻找.mp4的特定部分,然后单击一个按钮,ajax调用被激活到一个PHP脚本,该脚本获取.mp4,以及视频的确切时间,并使用它来提取一个"缩略图"框架.
我目前的解决方案是使用php exec命令:
exec("ffmpeg -i $videoPath -ss $timeOffset -vframes 1 $jpgOutputPath");
......效果很好,除了它和糖蜜一样慢.我的猜测是ffmpeg对于这项工作来说有点太多了,我可以通过利用底层库或其他东西做得更好......但是我不知道如何做到这一点.
理想情况下,我不想安装任何需要真正"安装过程"的东西......即,使用我的网络应用程序将可执行文件放入文件夹中很好,但我宁愿不必实际运行安装程序.此外,解决方案应该能够在mac,linux和windows上运行(尽管linux是首要任务).
我该怎么做才能加快这个过程?
谢谢.
我正在观看youtube视频,我决定调查其视频播放器的某些部分.我注意到,与我见过的大多数HTML5视频不同,Youtube的视频播放器不会使用普通视频源,而是使用blob网址作为源.
以前我测试了HTML5视频,我发现服务器从一开始就开始流式传输整个视频,并在后台缓冲整个视频的剩余部分.这意味着如果您的视频为300兆,则将下载所有300兆.如果你寻求中间,它将从搜索位置一直开始下载到最后.
Youtube不会这样工作(至少在chrome中).相反,它设法控制缓冲,因此它只在暂停时缓冲一定量.它似乎只缓冲相关的部分,所以如果你跳过它将确保不缓冲不太可能被观看的部分.
在我试图研究它是如何工作的时候,我注意到视频src标签有一个值blob:http%3A//www.youtube.com/ee625eee-2802-49b2-a13f-eb374d551d54,它指向blob,然后导致我输入数组.使用这两个资源,我可以将mp4视频加载到blob中并将其显示在HTML5视频标记中.
然而,我现在坚持的是Youtube如何处理这些碎片.查看网络流量,它似乎发送请求,以http://r6---sn-p5q7ynee.c.youtube.com/videoplayback2.1mb的块返回二进制视频数据.值得注意的是,由于HTML5视频请求导致的大多数正常请求似乎在流式传输时收到了206响应代码,但是youtube的播放视频调用获得了200个响应代码.
我试图只尝试加载一系列字节(通过设置Rangehttp标头),但遗憾的是失败了(我假设因为视频中没有视频的元数据).
在这一点上,我一直在想弄清楚Youtube如何实现这一目标.我提出了几个想法,虽然我没有完全卖掉:
1)Youtube会在每次/videoplayback通话时发送自包含的视频和音频块.这似乎是上传方面相当沉重的负担,似乎很难将它们拼接在一起,使它看起来像是一个无缝的视频.此外,视频标签,似乎认为这是一个完整的视频,从通话判断$('video').duration和$('video').currentTime,这使我相信,视频标签认为它是一个单一的视频文件.最后,vidoe src标签永远不会改变,这让我相信它正在使用单个blob而不是切换blob.
2)Youtube构造一个预先确定为完整视频数组大小的空blob,并在下载时更新blob.然后它将确保用户没有太接近最后下载的片段(以防止用户进入blob的未下载部分).我看到的问题是,我没有看到通过javascript动态更新blob的任何方法(尽管我可能只是在谷歌上搜索它)
3)Youtube下载元数据,然后通过在下载时附加视频片段来开始按顺序构建blob.我用这种方法看到的问题是我不明白它将如何处理后缓冲区域中的搜索.
也许我只是错过了一个在我面前的明显答案.任何人都有任何想法?
我想FFMPEG在android studio中配置,但我无法获得任何文档或链接.许多FFMPEGlib 上的Github 可用于android,但都是旧版本.以及如何在android中运行命令?我想在配置FFMPEG后知道如何运行FFMPEG命令.帮助我.谢谢你.
我使用下面的链接但没有成功的最新版本.
http://writingminds.github.io/ffmpeg-android-java
https://github.com/WritingMinds/ffmpeg-android-java
https://github.com/havlenapetr/FFMpeg
即使它似乎处于某种危险之中,开放视频标准也是一个好主意.我看到了一些关于运动跟踪的演示 - 只是概念验证,但仍然很有趣.现在,我会说像这样的概念真的会有所收获,如果可以访问用户的网络摄像头......想象一下用双手在半空中浏览Flickr.
我用谷歌搜索了一下,但我找不到关于这个问题的任何详细讨论.有些地方提到过,但这并没有让我走得太远.有人知道是否计划对此提供支持?如果是,那么"何时"的任何预测?;-)
当然,我猜他们必须为它设想一个非常好的安全模型.
我正在尝试使用图片阵列和音频文件制作电影文件.为了制作带有图片阵列的电影,我在这里使用了zoul的大帖子.一切都很完美,我的电影和我的照片一样.但是,当我尝试添加一些音轨时,我遇到了很多问题.要理解我把我的代码:
当我调用此方法时,图片数组和歌曲文件已准备就绪:
-(void) writeImagesToMovieAtPath:(NSString *) path withSize:(CGSize) size
{
NSString *documentsDirectoryPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSArray *dirContents = [[NSFileManager defaultManager] directoryContentsAtPath:documentsDirectoryPath];
for (NSString *tString in dirContents) {
if ([tString isEqualToString:@"essai.mp4"])
{
[[NSFileManager defaultManager]removeItemAtPath:[NSString stringWithFormat:@"%@/%@",documentsDirectoryPath,tString] error:nil];
}
}
NSLog(@"Write Started");
NSError *error = nil;
AVAssetWriter *videoWriter = [[AVAssetWriter alloc] initWithURL:
[NSURL fileURLWithPath:path] fileType:AVFileTypeMPEG4
error:&error];
NSParameterAssert(videoWriter);
NSDictionary *videoSettings = [NSDictionary dictionaryWithObjectsAndKeys:
AVVideoCodecH264, AVVideoCodecKey,
[NSNumber numberWithInt:size.width], AVVideoWidthKey,
[NSNumber numberWithInt:size.height], AVVideoHeightKey,
nil];
AudioChannelLayout channelLayout;
memset(&channelLayout, 0, sizeof(AudioChannelLayout));
channelLayout.mChannelLayoutTag = kAudioChannelLayoutTag_Stereo;
NSDictionary …Run Code Online (Sandbox Code Playgroud) private void StartReceivingData(string ipAddress, int iPort)
{
try
{
if (!_bContinueReciving)
{
//initializeMainSocket(ipAddress, iPort);
_mSocket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.IP);//<------HERE IS RAISED THE EXCEPTION
_mSocket.Bind(new IPEndPoint(IPAddress.Parse(ipAddress), iPort));
// _mSocket.Bind(new IPEndPoint(IPAddress.Loopback, iPort));
_mSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.HeaderIncluded, true);
_mSocket.IOControl(IOControlCode.ReceiveAll, new byte[4] { 1, 0, 0, 0 }, new byte[4] { 0, 0, 0, 0 });
//var 1
_mSocket.BeginReceive(_buffReceivedData, 0, _buffReceivedData.Length, SocketFlags.None,
new AsyncCallback(OnReceive), null);
initializeLocalSocket();
}
else
{
_bContinueReciving = false;
_mSocket.Close();
}
}
catch (Exception exception)
{
Debug.WriteLine(exception);
}
}
Run Code Online (Sandbox Code Playgroud)
我不明白为什么......它有效,现在却没有.有人能帮助我吗?我正在使用vlc进行流式传输,我不会收到数据包,做一些报告,然后在本地重新播放一个播放器
我在一个页面中嵌入了一个YouTube视频,并有一个滑块,我可以使用该滑块设置播放器速度.
我在用 player.setPlaybackRate(value);
问题是我希望范围从0.5到3,但播放器API仅将值限制为预定义[0.25, 0.5, 1, 1.25, 1.5, 2].
在YouTube中我可以轻松调整速度document.getElementsByTagName("video")[0].playbackRate = 3但在iframe上我没有这样的访问权限.