我有一个AVComposition和一个AVVideoComposition,我每半秒左右就生成一个拇指视频.我使用动画工具进行一些叠加.我在操作队列上执行调用,并在某些类型的编辑后触发.操作队列是串行而不是异步,因此进程永远不会运行并且我已经验证了这一点.下面的代码在串行队列中的另一个NSOperation中的主线程上执行.
现在我的问题是,拇指随机失败,没有模式.我可以运行一次并让它全部成功.我可以用完全相同的参数再次运行它,并且有一些拇指失败.我可以再次运行它并且有不同的拇指失败.
它似乎与其他线程中正在进行的其他活动有关,例如从ALAssetLibrary或MediaFramework查询大量项目.
我还要提到这在iOS6中没有这个问题.
在生成拇指之前,我会创建AVComposition和AVVideoComposition的副本.
有人对我有任何指示?
我很感激.
//this must be called on the main thread to correctly generate overlays
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
AVAsset *asset = avComposition;
AVAssetImageGenerator *generator = [[AVAssetImageGenerator alloc] initWithAsset:asset];
generator.appliesPreferredTrackTransform = TRUE;
AVMutableVideoComposition *mutableVideoComposition = (AVMutableVideoComposition *) avVideoComposition.mutableCopy;
CALayer *baseSyncLayer = [CALayer layer];
baseSyncLayer.frame = CGRectMake(0, 0, resolution.width, resolution.height);
CALayer *videoLayer = [CALayer layer];
videoLayer.frame = CGRectMake(0, 0, resolution.width, resolution.height);
[baseSyncLayer addSublayer:videoLayer];
__unused NSArray *imageLayers = [MovieCompositionService applyImageAnimations:avComposition andLayer:baseSyncLayer andProject:project fileRender:YES addTextOverlays:addTextOverlays andResolution:resolution];
mutableVideoComposition.animationTool = [AVVideoCompositionCoreAnimationTool videoCompositionCoreAnimationToolWithPostProcessingAsVideoLayer:videoLayer …
Run Code Online (Sandbox Code Playgroud) 我需要获取在线视频文件的缩略图而不下载文件.
可能吗 ?
是否可以使用Universal Image Loader?
我正在尝试为我的简单视频播放器实现Youtube的缩略图预览功能.这是Snap for it:
好消息是:一旦播放器从HTTP服务器获取所有缩略图预览,它就能顺利运行.
不好的是:获取所有缩略图预览需要花费大量时间(20-30秒).(对于14分钟(~110 MB)的视频(.mp4文件),大约有550个缩略图预览(160x120)
我正在做的是:当用户开始播放视频时,我将向服务器发出"total_thumbnails"HTTP请求以获取所有这些视频.
还 - 注意:
- 我将在异步任务中执行多个HTTP请求.
- 我不会这样做,提出请求,等到下载完成然后再提出请求.
- 我将盲目地发出"total_thumbnails"HTTP请求,因此所有请求都在流水线中排队,然后并行接收响应.
额外细节:HTTP(lighttpd)服务器将运行,用户从列表中选择要播放的video.mp4后,我的播放器将从该处获取所有缩略图.此外,播放器将使用相同的服务器来使用HTTP流式传输来获取video.mp4.
问题是:当我开始播放视频,然后我快速搜索时,我最终看到了这个(白色缩略图是默认的,当映射到该时间的缩略图尚未从服务器获取时):
问题是:我如何有效地获取所有(或一些)缩略图预览,以便用户(大多数时间)将获得正确及时映射缩略图的体验?
我已经在视频开始时看到youtube的视频(这很快),播放器能够显示所有及时的正确缩略图(无论你将拇指拖到最后一分钟还是悬停在酒吧的最后几分钟,几乎每次都你会看到正确映射的缩略图).
他们是同时下载所有缩略图还是下载压缩的缩略图预览系列或其他一些智能的东西正在那里发生?
有没有人对此有所了解?
performance http thumbnails processing-efficiency video-thumbnails
我正在使用以下代码创建视频缩略图,并且在大多数情况下都可以使用。但是有时它会引发错误并且不会创建缩略图。我不明白为什么它有时不起作用。
这是我创建视频缩略图的方法:
let asset = AVAsset(URL: url)
let imageGenerator = AVAssetImageGenerator(asset: asset)
imageGenerator.appliesPreferredTrackTransform = true
do {
let cgImage = try imgGenerator.copyCGImageAtTime(CMTimeMake(1, 30), actualTime: nil)
let uiImage = UIImage(CGImage: cgImage)
imageview.image = uiImage
}
catch let error as NSError
{
print("Image generation failed with error \(error)")
}
Run Code Online (Sandbox Code Playgroud)
它在大多数情况下有效,当它不起作用时会引发此错误:
Error generating thumbnail: Error Domain=AVFoundationErrorDomain Code=-11800 "The operation could not be completed" UserInfo={NSLocalizedDescription=The operation could not be completed, NSUnderlyingError=0x17658520 {Error Domain=NSOSStatusErrorDomain Code=-12792 "(null)"}, NSLocalizedFailureReason=An unknown error occurred (-12792)}
Run Code Online (Sandbox Code Playgroud)
我不知道为什么它会抛出这个错误并且没有找到堆栈溢出的任何解决方案,即使其他人面临同样的问题。
有没有办法替换AVPlayer缩略图?我需要添加自定义图像作为缩略图层
想要tumbnails
从任何网站的 url创建。我正在使用以下代码
Bitmap bmThumbnail;
bmThumbnail = ThumbnailUtils.createVideoThumbnail(videoLink,
MediaStore.Video.Thumbnails.MICRO_KIND);
Run Code Online (Sandbox Code Playgroud)
但它不起作用,请提出任何其他方法(如果存在)。
我想从存储上的视频路径在 ImageView 中显示视频缩略图。是否有采用视频路径并返回缩略图位图的函数?我通过此代码获取视频路径:
public ArrayList<String> getAllMedia() {
HashSet<String> videoItemHashSet = new HashSet<>();
String[] projection = {MediaStore.Video.VideoColumns.DATA, MediaStore.Video.Media.DISPLAY_NAME};
Cursor cursor = getContext().getContentResolver().query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, projection, null, null, null);
try {
cursor.moveToFirst();
do {
videoItemHashSet.add((cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA))));
} while(cursor.moveToNext());
cursor.close();
} catch(Exception e) {
e.printStackTrace();
}
ArrayList<String> downloadedList = new ArrayList<>(videoItemHashSet);
return downloadedList;
}
Run Code Online (Sandbox Code Playgroud) 我需要在特定目录中上传视频,成功上传后,它会显示在页面上并带有缩略图预览:
代码:
<form action="" method="post" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="500000" />
<table width="400" cellpadding="3" >
<tr>
<td colspan="3"> </td>
</tr>
<tr>
<td width="10" rowspan="2"> </td>
<td width="120"><strong>Choose a file to upload:</strong></td>
<td width="242"><input type="file" name="uploaded_file" /></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td><input type="submit" name="sendForm" value="Upload File" />
<br /></td>
</tr>
<tr>
<td colspan="3"> </td>
</tr>
</table>
</form>
<?php
// C:\wamp\www\scriptDir\uploads\;
$idir = "C:/xampp/htdocs/xampp/video"; // Path To Images Directory
$tdir = "C:/xampp/htdocs/xampp/video"; // Path …
Run Code Online (Sandbox Code Playgroud) 我已找到JavaScript代码来获取视频的缩略图,并给出其URL.但是,我只在YouTube和Vimeo中找到了这个.似乎没有人列出如何使用html5视频标签嵌入视频的示例.可以吗?谢谢.
我们正在使用 Xamarin 表单制作视频录制应用程序。
我的问题是如何从 Xamarin 形式的视频生成缩略图?
我有一个视频文件的 url,我想生成每个视频源 url 的缩略图。我正在使用 Django。
我的应用程序这样做: -
1. Crawl the some webpage
2. Extract all the video link from it.
3. If there are thumbnails, get those thumbnails.
4. if not thumbnails:
#here I need to generate video thumbnails from the
#links I extracted in 2nd step.
Run Code Online (Sandbox Code Playgroud)
有没有办法在不下载完整视频和生成缩略图的情况下做到这一点。
如果我下载每个视频,则会浪费大量带宽并需要大量时间。
谢谢
我正在尝试从 URL 示例获取缩略图:“https://www.learningcontainer.com/wp-content/uploads/2020/05/sample-mp4-file.mp4” 在 IOS 中可以使用 AVAssets。我这样做的方式是使用以下函数
public static Bitmap retriveVideoFrameFromVideo(String videoPath) throws Throwable {
Bitmap bitmap = null;
MediaMetadataRetriever mediaMetadataRetriever = null;
try {
mediaMetadataRetriever = new MediaMetadataRetriever();
if (Build.VERSION.SDK_INT >= 14)
mediaMetadataRetriever.setDataSource(videoPath, new HashMap<String, String>());
else
mediaMetadataRetriever.setDataSource(videoPath);
// mediaMetadataRetriever.setDataSource(videoPath);
bitmap = mediaMetadataRetriever.getFrameAtTime(1, MediaMetadataRetriever.OPTION_CLOSEST);
} catch (Exception e) {
e.printStackTrace();
throw new Throwable("Exception in retriveVideoFrameFromVideo(String videoPath)" + e.getMessage());
} finally {
if (mediaMetadataRetriever != null) {
mediaMetadataRetriever.release();
}
}
return bitmap;
}
Run Code Online (Sandbox Code Playgroud)
但问题是它会减慢回收视图并一次又一次地加载图像。
video-thumbnails ×12
android ×4
video ×4
avfoundation ×1
avplayer ×1
django ×1
file ×1
file-upload ×1
html5-video ×1
http ×1
imageview ×1
ios ×1
ios7 ×1
java ×1
javascript ×1
objective-c ×1
performance ×1
php ×1
python ×1
swift ×1
thumbnails ×1
xamarin ×1