IOS 视频缩略图的生成
使用AVFoundation框架可以生成视频缩略图,用到的类:
》》AVAsset:
用于获取多媒体的相关信息,如多媒体的画面和声音等。
》》AVURLAsset:
AVAsset的子类,用于根据NSURL生成AVAsset对象
》》AVAssetImageGenerator:
用于截取视频指定帧的动画
一般步骤:
1、根据视频的URLchuang见AVURLAsset对象
2、根据AVURLAsset对象创建AVAssetImageGenerator对象
3、调用AVAssetImageGenerator对象的copyCGImageAtTime:actualTime:error:来获取该视频指定时间点的视频截图
第一个参数:指定获取哪个时间点的视频截图,该参数是一个CMTime结构体:(CMTime. value/timescale = seconds)
typedef struct
{
CMTimeValue value; /*! @field value The value of the CMTime. value/timescale = seconds. */
CMTimeScale timescale; /*! @field timescale The timescale of the CMTime. value/timescale = seconds. */
CMTimeFlags flags; /*! @field flags The flags, eg. kCMTimeFlags_Valid, kCMTimeFlags_PositiveInfinity, etc. */
CMTimeEpoch epoch; /*! @field epoch Differentiates between equal timestamps that are actually different because
of looping, multi-item sequencing, etc.
Will be used during comparison: greater epochs happen after lesser ones.
Additions/subtraction is only possible within a single epoch,
however, since epoch length may be unknown/variable. */
} CMTime;
获取CMTime相关函数:
CMTime CMTimeMake(
int64_t value, /*! @param value Initializes the value field of the resulting CMTime. */
int32_t timescale) /*! @param timescale Initializes the timescale field of the resulting CMTime. */
__OSX_AVAILABLE_STARTING(__MAC_10_7,__IPHONE_4_0); CMTime CMTimeMakeWithSeconds(
Float64 seconds,
int32_t preferredTimeScale)
__OSX_AVAILABLE_STARTING(__MAC_10_7,__IPHONE_4_0);
第二个参数:获取截图的实际时间点(要用“&”传指针)
第三个参数:获取错误信息(要用“&”传指针)
IOS 视频缩略图的生成的更多相关文章
- 使用AVFoundation仅仅生成缩略图,不进行播放视频(本地和网络文件都可以创建视频缩略图)
使用MPMoviePlayerController来生成缩略图足够简单,但是如果仅仅是是为了生成缩略图而不进行视频播放的话,此刻使用 MPMoviePlayerController就有点大材小用了.其 ...
- 利用FFmpeg生成视频缩略图 2.1.6
利用FFmpeg生成视频缩略图 1.下载FFmpeg文件包,解压包里的\bin\下的文件解压到 D:\ffmpeg\ 目录下. 下载地址 http://ffmpeg.zeranoe.com/build ...
- iOS截取视频缩略图的两种方法
前言: 看完了使用MPMoviePlayerController播放在线视频,在实际应用中有时候须要获取视频的缩略图,我们来看看怎样截取指定时间内的视频缩略图. 一 使用MPMoviePlayerC ...
- ios——MPMoviePlayerController截取视频缩略图 播放视频又可以截取视频缩略图
#import <AVKit/AVKit.h>#import <MediaPlayer/MediaPlayer.h>#import "ViewController.h ...
- ios——视频 MPMoviePlayerController的使用(支持本地和网络)
视频 MPMoviePlayerController 在iOS中播放视频可以使用MediaPlayer.framework种的MPMoviePlayerController类来完成,它支持本地 视频和 ...
- 最简单的基于FFmpeg的移动端例子:IOS 视频解码器-保存
===================================================== 最简单的基于FFmpeg的移动端例子系列文章列表: 最简单的基于FFmpeg的移动端例子:A ...
- 最简单的基于FFmpeg的移动端例子:IOS 视频转码器
===================================================== 最简单的基于FFmpeg的移动端例子系列文章列表: 最简单的基于FFmpeg的移动端例子:A ...
- android 获取视频缩略图终极解决方案(ffmpeg)
http://blog.csdn.net/u010499721/article/details/50338623 前些天有个师弟(在做一个仿LinkInEyes行车记录仪的app)问我怎么获取视频缩略 ...
- 最简单的基于FFmpeg的移动端样例:IOS 视频解码器
===================================================== 最简单的基于FFmpeg的移动端样例系列文章列表: 最简单的基于FFmpeg的移动端样例:A ...
随机推荐
- MVC第二天
一.过滤器filter 注意:如果继承自接口需要让类实现FilterAttribute,才可以作为特性使用使用方式1:作为Controller或Action的特性使用方式2:在Global中注册为全局 ...
- python学习道路(day9note)(socketserver编程,ftp)
1.ftp client #!/usr/bin/env python #_*_coding:utf-8_*_ import socket import subprocess user_data = { ...
- Hardware Solutions CACHE COHERENCE AND THE MESI PROTOCOL
COMPUTER ORGANIZATION AND ARCHITECTURE DESIGNING FOR PERFORMANCE NINTH EDITION Hardware-based soluti ...
- Servlet中的常用类以及常用方法
A:ServletConfig:用于读取Servlet在web.xml中配置的一些信息. getServletName(); getInitParameter();只能是Servlet自身下的参数设置 ...
- J2SE核心开发实战
原图链接:http://naotu.baidu.com/file/7e3fb5d333b8cb665038390617834559?token=3c3c9d183944dd8e 课程来源:https: ...
- Windows 下TortoiseGit 设置避免每次登录帐号密码
TortoiseGit ->Settings 1.选择设置的git目录 2.输入登录帐号与email 3.点击Edit global.gitconfig 编辑,将文本 [credential] ...
- Android Handler机制
http://blog.csdn.net/erliangcode/article/details/52117831
- ACM集训的第。。。诶~不知道第几题=.=
题目: 郭铮鹏认为排序是一种很频繁的计算任务,所以他考虑了一个简单的问题:现在最多只有三值的排序问题.一个实际的例子是,当我们给某项竞赛的优胜者按金银铜牌排序的时候.在这个任务中可能的值只有三种1,2 ...
- LeetCode Logger Rate Limiter
原题链接在这里:https://leetcode.com/problems/logger-rate-limiter/ 题目: Design a logger system that receive s ...
- logstash插件
codec 插件 goeip插件 input { file { path => ["/data/nginx/logs/access.log"] type =>&qu ...