Tag: 视频

iOS 11上HEVC编码器的文件大小问题

有关此问题的原因,请参见下面的更新5! … iOS 11备受期待的功能之一是对HEVC(或H.265)编码视频的支持。 HEVC使文件大小从H.264减少了约50%,而不会降低质量。 新的编码器的初始印象在随附的相机应用程序中表现良好,但将视频编解码器设置为HEVC时,AVASsetWriter使用的编码器似乎存在问题。 要查看该问题,请在此处克隆或下载我的Git存储库。 另外,如果您有一个已经使用其他编解码器将帧写入视频的项目,只需将使用的AVVideoCodecKey替换为AVVideoCodecType.hevc(在较早版本的Swift上为AVVideoCodecHEVC),如下所示: 在比较使用HEVC编解码器与H.264进行输出的文件时,我已经看到,使用HEVC进行输出的文件的大小大约是使用H.264进行编码的文件的三倍,而质量似乎是相同的。 我已经向Apple提交了错误,并且在收到他们的来信后会更新此帖子,但是与此同时,如果您需要使用AVFoundation逐帧编写,我建议不要跳入使用HEVC。 更新:此问题在iOS 11.0.1中仍然存在-HEVC编码文件的文件大小仅是H.264编码文件的三倍多。 更新2:在iOS 11.0.2中仍未修复 更新3:在iOS 11.0.3中仍未修复 更新4:在iOS 11.2中仍未修复 更新5:根据Brad Ford的说法,问题是HEVC编码器的默认比特率(30兆位)比H.264编码器的默认高得多(5mit)。 尚不清楚这是为什么,并且从文档中看不出来,但是需要更多细节才能了解哪种比特率可以提供两种不同编码器可比的质量。

在不离开家的情况下录制世界各地的视频。

这个程序非常适合以下情况:Youtube视频,学校演讲,视频新闻,视频制作工作,主题演讲……或任何类型的活动! 您可以不离开客厅就在时代广场,伦敦塔甚至在撒哈拉沙漠中。 提词提示器 + 视频录制 + 绿屏显示 你所看到的就是你得到的。 它是如何工作的? 绿屏+提词提示器:导入脚本,选择自己的背景,设置提词提示器并开始录制。 绿屏:设置背景并使用相机录制绿屏视频。 提词提示器:导入脚本,配置提词提示器并开始阅读。 *您后面需要绿色或蓝色的墙。 特征: 色度键:您可以选择背景色-蓝色🔷或绿色💚。 照片编辑器。 云服务:从任何云服务(例如Google云端硬盘,Dropbox…)导入脚本 背景图片:从设备的图库中选择任何图片。 接受的文件:.txt,.rtf,.doc和.docx。 配置脚本:粗体,斜体,文本对齐,文本颜色,突出显示,字体大小… 配置您的阅读:速度(每分钟字数),镜像模式,背景色,倒计时,指南… 后置和前置摄像头。 您的脚本会自动滚动到相机附近,因此看起来就像您直接注视镜头一样。 选择视频的分辨率:640×480 | 1280×720 | 1920×1080 | 3840×2160 内容模式:适合| 填 远程控制应用程序。 Apple Watch遥控器应用程序。 添加笔记,评论,索引或在演讲过程中需要记住的任何内容。 屏幕上的估计剩余时间和经过时间。 记录自己并将视频保存到相机胶卷 阅读指南和线路指示器可帮助您保持位置。 轻松上下移动。 与您的队友和朋友分享您的脚本。 客户支持消息系统-您有问题吗? 需要帮忙? 我们将尽快为您提供帮助。 绿屏提词器应用程序: 绿屏电话提示器:在App Store上的内容 Leereseñas,客户评估公司,pantalla yobténmira capturas和sobre绿色屏幕… itunes.apple.com 没有绿屏模式的免费提词提示器应用程序: Hornet Teleprompter Lite教授:在App […]

制作应用电影

我注意到,App Store现在允许您最多包含三个应用程序预览(视频)以及五个屏幕截图,因此我重新介绍了制作方法。 俗话说,iOS 11将具有设备上的屏幕录制,但是与此同时,您可以通过将设备插入Mac,启动Quicktime Player并从“文件”菜单中选择“创建电影录制”来创建设备的屏幕录制。 。 然后选择您的设备作为“录制”按钮旁边的视频和音频源,然后按该按钮开始/停止录制。 关闭窗口时,它会提示您保存录音。 iTunesConnect不会接受此.mov文件,因为它是60FPS,而且我曾经不得不在iMove中执行一系列步骤才能将其转换为30FPS,但是现在iMovie具有App Preview支持。 因此,启动iMovie,转到“文件”菜单以创建一个应用程序预览,然后将提示您导入.mov文件(或者您可以使用“文件”菜单中的“导入媒体”选项)。 我选择了剪辑的整个范围,并将其拖动到影片窗格中(都可以在“编辑”菜单中完成),然后在“文件”菜单中导出(共享)到预期的目标,即App Preview,它将是一个。您可以将mp4文件上传到iTunesConnect。 当然,您也可以将其上传到YouTube。

[教程]如何使用ABVideoRangeSlider在iOS中修剪视频-第1部分,共2部分

本教程由Swift 3使用ABVideoRangeSlider库制作。 在此示例中,我们包括了一个简单的视频播放器。 此示例托管在我们的Github存储库中! 创建项目 让我们使用Single View Application模板创建新项目: 我们称之为视频编辑器 准备用户界面 首先,让我们创建视频播放器。 转到您的Main.Storyboard并添加一个UIView 并设置约束 并添加两个按钮:播放和暂停 将这些按钮连接到您的ViewController.swift: @IBOutlet var btnPlay:UIButton! @IBOutlet var btnPause:UIButton! 与包含我们视频的UIView相同 @IBOutlet var videoContainer:UIView! 将视频添加到我们的项目 将视频拖放到项目导航器中,在这种情况下,我正在使用mp4视频。 并确保检查是否需要复制项目以及项目的目标 。 转到您的ViewController.swift并在ViewDidLoad方法中添加以下行: let path = Bundle.main.path(forResource:“ test”,ofType:“ mp4”) 现在,为了播放该视频,我们需要将AVFoundation导入到我们的控制器中: 导入AVFoundation 并将这两个属性添加到我们的控制器中: 让avPlayer = AVPlayer() var avPlayerLayer:AVPlayerLayer! 初始化AVPlayer和AVPlayerLayer 取得视频的路径后,我们需要创建一个AVPlayerItem 使用该路径,并初始化avPlayer : 让playerItem = AVPlayerItem(URL:URL(fileURLWithPath:path)) avPlayer.replaceCurrentItem(with:playerItem) 并设置我们的avPlayerLayer : avPlayerLayer […]

将背景视频添加到登录屏幕

您是否不认为有时小的设计细节就可以通过一点点的努力就能将任何视图的无聊体验变成有趣的视图? 登录屏幕中的视频背景是在一些热门应用(例如Spotify和Vine)中引起我注意的这些很酷的细节之一。 我决定试一试,看看如何在应用程序中实现它。 我发现这可以通过不同的方式来实现,例如将imageView与GIF,AVFoundation或MPMoviePlayerController一起使用。 对于此博客,我将演示如何使用AVFoundation,它非常简单,直接,只需几行代码,您就可以构建一个漂亮的登录屏幕。 首先,您需要一个视频将其添加到您的Xcode项目中,我正在使用.mp4视频。 我通常更喜欢为视频创建一个单独的视图,然后将其导入到登录VC,或者您也可以直接在登录VC中执行所有下一步。 在VideoView.h文件中,我添加了以下方法: 希望这篇文章对您有所帮助,并随时在下方留言! 快乐的编码:)。

使Vimeo视频在iOS中脱机工作

作为Hasso Plattner Institute(HPI)知识技术研究小组的成员,我们正在研究和研究如何使MOOC和基于视频的电子学习脱机工作,因为我们已经了解到,在openHPI的MOOC中,大约有三分之一的用户, openSAP或openWHO下载视频和资料。 除了在具有脱机功能的网站上工作外,我们的研究和工作还涉及针对Android和iOS提供的本地应用程序。 在我们的Android应用中,我们提供SD和HD格式的mp4文件下载。 对于我们的新iOS App,我们决定使用HTTP Live Streaming(HLS)视频(请在apple.com上单击此链接以获取规格和更多内容)。 这是一种非常不错的格式,它基于播放列表,因此它可以包含不同的bandwith版本以及不同的音频和字幕版本。 然后,播放器可以根据语言偏好和可用带宽下载最适合的版本。 如果您在在线时使用HLS,则播放器将尝试使用可能的最佳版本。 从iOS 10开始,Apple引入了允许用户下载HLS视频并稍后播放的可能性。 我们认为这很酷是出于不同的原因。 在没有互联网连接的情况下,在非洲某处上班的通勤者或卫生工作者,均可从此功能中受益。 我是否提到过我们的研究被SAP,WHO和其他机构使用? 我们花了最后两周的时间来实现此功能,而最后四天的调试仅使它无法正常工作。 我们的视频托管在Vimeo上,因此可以从靠近用户的数据中心进行交付。 Vimeo还负责对我们的视频文件进行转码。 如果直接在Vimeo上访问视频文件(不使用其播放器),则可以访问HLS URL,该URL如下所示: https://player.vimeo.com/external/203790595.m3u8?s=3cb58fb02666fd9b9bd8f14f36d54a45fb29c785 调用此URL时,它将发送HTTP重定向,其中将包含实际文件的URL,例如https://skyfire.vimeocdn.com/1501777916-0x0d0827236aefc32e0894e1f50efad8cb6642e905/224214791/video/786737170,786737168,786737172,786737173173 /master.m3u8?absolute=1 虽然此功能非常适合在线播放此文件,但如果应用下载了文件并尝试在离线时稍后播放,则无法播放视频。 来自不同来源的其他文件运行良好。 最终,我们发现iOSs SDK中的下载功能无法正确处理重定向(已在iOS 10和至少是当前的iOS 11公开Beta中进行了测试)。 我们通过应用中的解决方法解决了此问题: (请参阅GitHub上的完整提交),方法是手动调用链接,然后将最终URL传递给下载程序。 请注意,正如Vimeo支持人员确认的那样,此解析的链接仅在短时间内有效。 请注意,文件和下载链接都是通过HTTP 302重定向到实际视频文件资源的。 实际视频文件资源的位置每隔几个小时就会过期,因此请确保始终使用我们提供的重定向链接。 希望这篇文章能帮助其他人在遇到相同问题时绊倒一些时间。 我们向Apple提出了一个错误,但即使他们为新的iOS版本修复了该错误,旧版本仍会保持这种行为。 更新1 —新解决方案 尽管上述方法允许离线观看已下载的视频,但是当设备连接到Internet并且远程链接过期后(大约一天后),播放将失败。 我们认为这是由于某种原因设备尝试在线获取播放列表的原因,如果网址过期,则会中断。 我们知道从应用程序中删除了重定向处理代码,而是构建了HLS代理。 因此,我们可以为该应用提供未过期的链接。 然后,此链接从vimeo中获取播放列表,然后让它通过。 请注意,我们也正在操纵单个流,不知道是否可行,但是通过这种方式,我们可以控制所有URL。

Swift 4 ile VideoSıkıştırma

Herkese merhabaarkadaşlar。 Bildiğinizüzerediğerdillerdeolduğugibi Swift’e de ait internette pek fazlaTürkçekaynakbulamamaktayız。 您可以在olmakadınakendi projemdekullanmışolduğumvegerçektenişeyarayacağınıdüşündüğümbir konuyla seriyebaşlamışbulundum。 Başlıktandaanlaşılacağıüzerebugün视频sıkıştırmadanbahsedeceğiz。 您可以在磁盘上找到磁盘,然后在磁盘上添加文件。yaptıysanızkeinlikleihtiyaçduyacaksınız。 Ayrıcabildiğinizgibiyüksekboyuttakivideolarıuzunsürelerde上传了etme durumudasözkonusu。 Birdakikalıkbir videonun ortalama 100 MBdolaylarındaolduğunudüşünürsekkullanıcılarınızsizikötüanmasımuhtemelenkaçınılmazolacaktır。 视频sıkıştırmaylailgilibirçok算法mevcut fakat buyazıdaAVFoundation’ıniçindebulunan AVAssetExportSession kullanarak buişlemigerçekleştirececeiz。 Sıkıştırmadanziyadeküçültmedediyebiliriz :)。 Buişlemibir fonksiyoniçerisindegerçekleştireceğiz。 FonksiyonagöndereceğimizinputURL(Videomuzunbulunduğukonumun adresi。路径olaraktatanımlanabilir。)ve outputURL (Sıkışmasonucunda almakistediğimizkonumun adresi。)olacak。 Fonksiyonumuzuoluşturmayabaşlayabiliriz。 func compressVideo(inputURL:URL,outputURL:URL,handler:@escaping(_ exportSession:AVAssetExportSession?)->无效){ } Yukarıdakigibi compressVideoadındabir fonksiyonoluşturduk。 3 adetdeğervar输入ve输出URL’leri ve bir adet handlerimiz。 否否输出否否是kullandığımızdanyukarıdabahsetmiştik。 handlerimiziniçindebir @转义ekintanımladık。 […]