标签: video-processing

如何从CMSampleBufferRef获取字节,通过网络发送

使用AVFoundation框架工作捕获视频.借助Apple文档http://developer.apple.com/library/ios/#documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/03_MediaCapture.html%23//apple_ref/doc/ UID/TP40010188-CH5-SW2

现在我做了以下事情

1.Created videoCaptureDevice
2.Created AVCaptureDeviceInput并设置videoCaptureDevice
3.Created AVCaptureVideoDataOutput和实现代表
4.Created AVCaptureSession-设定输入作为AVCaptureDeviceInput并设置输出作为AVCaptureVideoDataOutput

5.在AVCaptureVideoDataOutput委托方法中

-(void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection
Run Code Online (Sandbox Code Playgroud)

我有CMSamplebuffer并转换成UIImage并测试使用打印UIImageview

[self.imageView performSelectorOnMainThread:@selector(setImage:) withObject:image waitUntilDone:YES];
Run Code Online (Sandbox Code Playgroud)

每件事情都很顺利........

我的问题是,我需要通过UDP套接字发送视频帧.尽管下面的一个是我试过的坏主意,UIImage到NSData和通过UDP Pocket发送.BUt得到了如此延迟的视频处理.由于UIImage NSDate导致了很多问题

所以请给我解决方案我的问题

1)任何方法将CMSampleBUffer或CVImageBuffer转换为NSData ??
2)像音频队列服务和视频队列存储UIImage和UIImage到NSDate和发送???

如果我骑在错误的算法背后请在写方向路径我

提前致谢

video-capture video-processing avfoundation core-video ios

27
推荐指数
1
解决办法
2万
查看次数

如何在.Net中获取视频缩略图?

我正在寻找一个从输入视频中检索单个帧的函数,所以我可以将它用作缩略图.

这些方面的东西应该有效:

// filename examples: "test.avi", "test.dvr-ms"
// position is from 0 to 100 percent (0.0 to 1.0)
// returns a bitmap
byte[] GetVideoThumbnail(string filename, float position)
{
}
Run Code Online (Sandbox Code Playgroud)

有没有人知道如何在.Net 3.0中这样做?

正确的解决方案将是此功能的"最佳"实现.避免选择空白帧的奖励点.

.net c# video-processing

26
推荐指数
3
解决办法
3万
查看次数

ffmpeg错误:选择了模式类型'glob',但此libavformat构建不支持globbing

我正在尝试将作为单独帧的".jpg"文件组转换为1个单个mpeg视频".mp4"

我使用的示例参数:

frame duration  = 2 secs
frame rate      = 30  fps
encoder         = libx264 (mpeg)
input pattern   = "*.jpg"
output pattern  = video.mp4
Run Code Online (Sandbox Code Playgroud)

根据(https://trac.ffmpeg.org/wiki/Create%20a%20video%20slideshow%20from%20images)上的ffmpeg wiki说明,我发出了以下命令:

ffmpeg -framerate 1/2 -pattern_type glob -i "*.jpg" -c:v libx264 -r 30 -pix_fmt yuv420p video.mp4
Run Code Online (Sandbox Code Playgroud)

但是我收到了这个错误:

[image2 @ 049ab120] Pattern type 'glob' was selected but globbing is not 
supported by this libavformat build *.jpg: Function not implemented
Run Code Online (Sandbox Code Playgroud)

这可能意味着我的构建/版本的API模式匹配命令已更改.顺便说一下,我的windows 32bit ffmpeg下载build(ffmpeg-20150702-git-03b2b40-win32-static).

如何使用ffmpeg使用模式匹配选择一组文件?

ffmpeg video-processing

25
推荐指数
2
解决办法
8841
查看次数

使用命令行选项在mplayer中播放视频的特定间隔

我正在使用mplayer播放视频...我想知道是否有命令行选项在mplayer中播放视频的特定间隔?例如,如果我想播放56秒的视频文件持续3秒,那么命令行选项是什么?我知道将寻求特定位置的-ss选项,但如何指定我想要播放的持续时间?具体地说,如果我想要一个从第56秒开始播放视频文件并播放3秒视频的命令(即,直到第59秒开始,或等效地,结束第58秒),命令会是什么样的?

我一直在看手册页,但还没有成功.也许我错过了什么.我真的很感谢你的帮助!

video-processing mplayer

24
推荐指数
2
解决办法
2万
查看次数

获取H264Video流的尺寸

我试图从H264流中获取尺寸(高度和宽度).我知道要从mpeg2流中获取相同的详细信息,您必须查看序列头开始代码后面的四个字节((01B3)).H264的逻辑是否相同?非常感谢我得到的任何帮助..

video video-processing mpeg-2 h.264 mpeg-4

22
推荐指数
3
解决办法
3万
查看次数

以编程方式MOV到Mp4视频转换iPhone

我正在为iPhone中的Play Station 3开发媒体服务器.

我开始知道PS3不支持.MOV文件所以我必须将其转换为Mp4或PS3支持的其他转码.

这就是我所做的,但如果我设置的文件类型与源文件不同,它会崩溃.

AVURLAsset *avAsset = [AVURLAsset URLAssetWithURL:videoURL options:nil];

NSArray *compatiblePresets = [AVAssetExportSession exportPresetsCompatibleWithAsset:avAsset];

if ([compatiblePresets containsObject:AVAssetExportPresetLowQuality])
{
    AVAssetExportSession *exportSession = [[AVAssetExportSession alloc]initWithAsset:avAsset presetName:AVAssetExportPresetLowQuality];

    exportSession.outputURL = [NSURL fileURLWithPath:videoPath];

    exportSession.outputFileType = AVFileTypeMPEG4;

    CMTime start = CMTimeMakeWithSeconds(1.0, 600);

    CMTime duration = CMTimeMakeWithSeconds(3.0, 600);

    CMTimeRange range = CMTimeRangeMake(start, duration);

    exportSession.timeRange = range;

    [exportSession exportAsynchronouslyWithCompletionHandler:^{

        switch ([exportSession status]) {

            case AVAssetExportSessionStatusFailed:
                NSLog(@"Export failed: %@", [[exportSession error] localizedDescription]);

                break;

            case AVAssetExportSessionStatusCancelled:

                NSLog(@"Export canceled");

                break;

            default:

                break;
        }

        [exportSession release];
    }];
}
Run Code Online (Sandbox Code Playgroud)

如果我在这里设置AVFileTypeMPEG4然后它崩溃,说"无效的文件类型".所以我必须将它设置为AVFileTypeQuickTimeMovie并且它给出了MOV文件.

在iOS中是否可以通过AVAssetExportSession将视频从MOV转换为Mp4 …

iphone video-processing ios

22
推荐指数
4
解决办法
4万
查看次数

在视频中查找有趣的帧

有没有人知道我可以用来为视频找到"有趣的"代表性缩略图的算法?

我说30个位图,我想选择最具代表性的一个作为视频缩略图.

显而易见的第一步是消除所有黑框.然后或许寻找各种帧之间的"距离"并选择接近平均值的东西.

这里的任何想法或发表的论文都有帮助吗?

algorithm image-processing video-processing

21
推荐指数
2
解决办法
4790
查看次数

有没有办法在转码前使用ffmpeg来确定文件的编码?

我打算使用ffmpeg来确保上传到我网站的所有视频文件都编码为mp4 h264.

而不是自动处理每个文件,我想通过仅处理那些不是mp4 h264的文件来最小化处理开销.有没有一种简单的方法可以使用ffmpeg或其他命令行实用程序执行此操作?

ffmpeg video-processing video-encoding

21
推荐指数
3
解决办法
3万
查看次数

无需使用媒体提取器,无法在Android 4.2上对视频进行低级解码

我想在不使用提取器的情况下解码视频帧.所以我只尝试了一个小样本,我在那里使用了媒体提取器,但我没有 extractor.readsample()将比特流数据复制到输入缓冲区而是使用FFmpeg解析器,在JNI中,我将视频帧记忆到输入字节缓冲区然后排队输入缓冲区..但是当我调用时decoder.dequeueOutputBuffer(info, 10000),它返回MediaCodec.INFO_TRY_AGAIN_LATER.虽然我使用它可以正常工作extractor.readsample().

请在下面找到以下代码段:

Java方面:

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.ByteBuffer;

import android.app.Activity;
import android.media.MediaCodec;
import android.media.MediaCodec.BufferInfo;
import android.media.MediaExtractor;
import android.media.MediaFormat;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.Surface;
import android.view.SurfaceHolder;
import android.view.SurfaceView;

public class VideoBrowser extends Activity implements SurfaceHolder.Callback {
    private static final String SAMPLE = Environment.getExternalStorageDirectory() + "/obama.mp4";
    private PlayerThread mPlayer = null;
    private static native <jintArray> int AVinitializecntxt(String strl, jintArray arr);
    private native int AVREADVIDEO(byte[] array); …
Run Code Online (Sandbox Code Playgroud)

android video-processing decoding android-mediarecorder

20
推荐指数
1
解决办法
1341
查看次数

如何通过静音部分分割视频或音频

我需要通过单词自动分割语音视频,因此每个单词都是一个单独的视频文件.你知道怎么做的吗?

我的计划是检测静音部分并将它们用作单词分隔符.但我没有找到任何工具来做到这一点,看起来像ffmpeg不是正确的工具.

media audio video ffmpeg video-processing

20
推荐指数
1
解决办法
9741
查看次数