首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

视频面试题集锦(第 13 期)

下面是第 13 期面试题精选: 1、AVPlayer 中如何实现视频片段加速预览播放? 2、如何高效获取一个视频的关键帧序列? 3、SPS 和 PPS 在 extradata 中的作用是什么?...1、AVPlayer 中如何实现视频片段加速预览播放?...在编辑场景用 AVPlayer 来实现预览播放器时,对视频中某一段内容进行加速播放的实现代码如下: // 创建 AVMutableComposition 对象 AVMutableComposition...对象添加到其中 AVPlayer *player = [AVPlayer playerWithPlayerItem:playerItem]; 2、如何高效获取一个视频的关键帧序列?...当解码器接收到 IDR 帧时,它会清除之前的解码状态,确保从该帧开始解码,从而避免错误传播。IDR 帧通常用于视频序列的随机访问点,以及在视频传输或存储中用于错误恢复。

21010

【iOS 开发】同步快速判断视频是否可以播放

背景 拿到一个视频的 url 地址(无论是远程还是本地),有时候在播放之前需要检测该视频是否可以播放(本地可能是文件损坏,远端地址情况更复杂),下面介绍两种适用不同情况的方法来实现。...如果你在这里需要直接使用这个 AVPlayer 进行视频播放,那么推荐使用这个 KVO 方法。...否则会有这样几个缺点: avplayer 用于判断视频可播放性,本应该是局部变量,现在因为 KVO 它的 scope 被扩大了 KVO 方法在代码可读性上不如同步的直接判断 控制台会默认打印下面这些东西...如果仅仅是想要判断视频可播放性,而不需要使用 AVPlayer,建议使用这种方法,可以将 AVAsset 的创建逻辑加入到你的自定义播放器的 init 方法中。...我尝试在 iPhone 6s 上使用本地的一个约 800k 的 mp4 视频进行粗略测试,发现新建 AVAsset 耗时约 0.02s,新建 AVPlayer 异步返回耗时约 0.05s,这种同步方法大概快了一倍

2.1K20

iOS开发常用之摄像照相视频音频处理

只支持真机运行调试。 FSVoiceBubble - 一个轻量级播放录音音频的气泡:1.支持短时间的音频播放(支持网络音频); 2.播放时的声波动画; 3.自定义包括声波的颜色,气泡的背景等。...自定义视频播放器AVPlayer - 利用系统类AVPlayer实现完全自定义视频播放器,显示播放时间,缓存等功能。代码清晰,注释详细。...MusicPlayert - MusicPlayert本地音乐播放+音乐信息显示+在线歌词搜索显示(千千静听服务器)。...TBPlayer - 视频变下变播,把播放器播放过的数据流缓存到本地,支持拖动。采用avplayer。...实现说明 WMPlayer - WMPlayer视频播放器,AVPlayer的封装,继承UIView,想怎么玩就怎么玩。支持播放mp4,m3u8,3gp,mov,网络和本地视频同时支持。

2.8K51

腾讯社招iOS面试记录

weak原理 如果属性完全不加修饰词入weak,atomic,系统会怎么处理 简述下block的实现 描述下IM系统如何保证消息不丢 IM数据库如何设计表 C++引用和指针有什么区别 Http协议30x的错误是什么...该模块引申到的新话题还涉及到了增量更新,内存缓存,本地缓存。...包括视频下载,数据裁剪封装,引申聊到了边预览边裁剪,因为我之前的项目并没有做到预览裁剪这块。也就没有深入聊下去了。期间简单谈到了rstp协议,和HLS,rtmp等协议的对比,信令协议。...虽然之前都有看过协议的大致实现和预览,但是实际使用的是SDK,没有实践加持。这部分知识是很容易忘记的。大致聊了下总体差别。...项目做过视频播放需求,使用的AVPlayer框架(重点聊)面试官问到,AVPlayer怎么监听视频缓冲状态的,有哪几种状态。说来又是惭愧,我只记得是KVO监听的。具体的API已经记不清了。

1.9K00

多媒体-图片、音频、视频的基本实现

: 离线播放:这里并不是指应用不联网,而是指播放本地音频文件,包括先下完完成音频文件再进行播放的情况,这种使用AVFoundation里的AVAudioPlayer可以满足 在线播放:使用AVFoundation...完全下载后才播放就不能算在线播放了 所有苹果公司提供了功能强大的AVPlayerAVPlayer存在于AVFoundation中,其实它是一个视频播放器,但是用它来播放音乐是没问题的,当然播放音乐不需要呈现界面...支持本地和网链,更加接近底层,定制也更加灵活。...AVPlayer简单一句初始化: AVPlayer *newPlayer = [[AVPlayer alloc] initWithURL:[NSURL URLWithString:urlStr]];...//在线 AVPlayer *newPlayer = [[AVPlayer alloc] initWithURL: [NSURL fileWithString:urlStr]]; //本地

2K10

SkeyeLive中DShow本地采集视频参数设置及可能出现的错误提示详解

在近期发布的SkeyeLive多窗口版本中,由于界面的局限性,选择性的将本地采集的音视频参数设置在界面上剔除掉了(暂时还没想好放在哪里,后续版本会在界面调整后添加),大家可以查看SkeyeLive源码中的...StartDSCapture函数的参数设置代码进行相应设置;也应近期SkeyeSMS流媒体服务器群(QQ群:102644504,欢迎大家进群交流,任何技术问题,在所知的范围内都能给予解答)中大家提到的参数设置的错误提示以及参数该如何设置的问题...),选择一个设备即可进行捕获,然后在“选项”一栏中可以进行“预览”或者相应的参数设置,如下图所示:图片其中,“视频捕获接口”项是我们经常用到的查看视频的长,宽,色彩格式,图像格式等参数的设备信息,如下图所示...int nHeight;//视频宽度int nVideoWndId;//视频关联窗口IDint nFrameRate;//视频帧率char strDataType[64];//标识 色彩格式 数据类型,...Skeye_SDK_AUDIO_CODEC_AAC;m_mediainfo.u32AudioChannel = 2;m_mediainfo.u32AudioSamplerate = 16000;//44100;如果参数设置不成功,将会出现错误

80720

AVKit框架详细解析(四) —— 基于AVKit 和 AVFoundation框架的视频流App的构建

在本教程中,您将学习如何: 添加本地视频。 添加流媒体视频。 启用播放控件。 实现循环。 实现画中画。...2) 在这里,您获取 url 并创建一个 AVPlayer 对象。 AVPlayer 是在 iOS 上播放视频的核心。 播放器对象可以启动和停止您的视频,更改其播放速率,甚至可以调高和调低音量。...不是加载本地视频,而是通过用以下内容替换该行来加载所有视频: private let videos = Video.fetchLocalVideos() + Video.fetchRemoteVideos...构建并运行,然后转到全屏视频。 当您返回到feed时,预览会从停止的地方恢复。 6....(player: avPlayer) 构建并运行,打开一个全屏视频并观看出现在左上角的画中画按钮。

6.9K10

百思不得姐数据挖掘第三篇

播放视频的界面现在只剩下视频的功能了,对于这种播放视频的应该属于功能块。我们可以单独把这个功能提取出来。 我们新建一个包Plugins专门放置各种功能,我称作为插件。...let videoPlay = AVPlayer(url: videoUrl) let videoPlayController = AVPlayerViewController() 我们需要放置在我们播放视频界面的模板上面...视频截图 黑乎乎的,应该界面是出来了,但是播放不了。 仔细的查看了代码,忘记给属性赋值。 open var player: AVPlayer? 我们赋值一下。再次试一下看看。...,我们搜一下错误码试一下。...因为AVPlayer造成这些错误的信息。 再次从AVPlayer找到一个叫做Error的属性,输入一下看看有什么错误的信息。然并卵,这个属性为nil,看来我们初始化也没有什么问题。

58620

iOS 视频播放方式整理

下面把上面说的各个类分别说一下:       1、AVPlayerItem       在我们使用AVPlayer播放视频的时候,提供视频信息的就是AVPlayerItem,一个AVPlayerItem...3、 AVPlayer         它主要负责的是管理视频播放,暂停等等,相当于一个视频管理器,要是类比的话他就是一个ViewController(当然不是真正的ViewController),这三者就基本含括了一个基本的视频播...,基于着三者我们总结一下播放一个视频的基本的过程: 首先,得到视频的URL 根据URL创建AVPlayerItem 把AVPlayerItem 提供给 AVPlayer AVPlayerLayer 显示视频...AVPlayer 控制视频, 播放, 暂停, 跳转 等等。 播放过程中获取缓冲进度,获取播放进度。 视频播放完成后做些什么,是暂停还是循环播放,还是获取最后一帧图像。      ...}else if (status == AVPlayerStatusFailed){ NSLog(@"视频准备发生错误"); }else{

2.6K100

AVFoundation框架解析看这里(1)- 概论

例如: 如果你只是想播放视频,那么应该使用AVKit框架 如果你只需要最少的格式控制时录制视频,请使用UIKit框架 基本信息速览 ?...import AVFoundation.AVMovieTrack import AVFoundation.AVOutputSettingsAssistant import AVFoundation.AVPlayer...AVCaptureVideoPreviewLayer捕获的视频数据的预览图层 AVMetadataObject音视频元数据是一个基类里面包含面部检测的元数据和二维码的元数据 AVPlayer视频播放器...AVPlayerItem音视频播放的元素 AVPlayerItemMediaDataCollector音视频播放器元素媒体数据收集器 AVPlayerItemOutput播放器元素输出类 AVPlayerItemTrack...框架功能和应用方向会在后面的章节中穿插讲解及实现,在此大概分为以下功能: 采集 AVCapture 媒体捕捉 视频拍摄 图片拍摄 录制AVRecorder 音频录制 视频录制 播放 音频播放 视频播放

1.5K21

一文看完 WWDC 2022 音视频相关的更新要点丨音视频工程示例

HDR 视频帧做后处理,可以使用 AVPlayer、CADisplayLink 将 CVPixelBuffer 发送给 CoreImage 进行图像处理; 对 HDR 视频帧做后处理和渲染,可以使用 AVPlayer...2)使用 AVKit 和 AVFoundation 如果需要简单的播放 HDR 视频媒体渲染到 EDR,可以使用 AVPlayerViewController 渲染 AVPlayer,也可以使用 AVPlayer...AVPlayer 的用法 如果需要实现实时视频效果,大致流程如下: 实时视频效果 最终渲染一般都使用 CAMetalLayer,要支持正确的渲染 HDR 视频,还需要为 CAMetalLayer 设置一些属性...对于每个视频数据输出,可以自定义分辨率、防抖、方向和像素格式。 当我们需要预览采集的视频并进行录制时,我们可以对预览和录制分两路流采用不同的设置。...另外,对预览和录制使用不同的防抖模式也是对它们采用独立的视频数据输出的一个原因。因为防抖会为视频采集带来更大的延迟,在预览情况下是不可取的;而对于录制则可以应用防抖算法来获得更好的内容体验。

2.5K10
领券