Tag: h.264

如何streamh.264video发送到WOWZA使用rtsp与live555

我是新的捕获video,编码h.264,WOWZA服务器。 我已经检查了堆栈溢出和谷歌这么多的解决scheme,但不能完美的,我可以使用。 基本function: 继续从iPhone捕捉(video应该是h.264编码) 使用live555库,生成RTSPurl 将相同的video发送到WOWZA服务器上进行直播video 注意:video应该从iphone设备连续播放服务器没有大的延迟。 我的问题: 如何捕捉以h.264格式编码的video? 如何将live555库集成到VideoCapture类中以生成RTSP URL? 如何使用RTSP协议将video发送给WOWZA? 在ios上使用AV框架捕捉video。 请纠正我,如果我的想法是错误的。 谢谢,Punita

解码h264videostream获取图像缓冲区

我跟着这个post来解码我的h264videostream帧。 我的数据框如下: 我的代码: NSString * const naluTypesStrings[] = { @"0: Unspecified (non-VCL)", @"1: Coded slice of a non-IDR picture (VCL)", // P frame @"2: Coded slice data partition A (VCL)", @"3: Coded slice data partition B (VCL)", @"4: Coded slice data partition C (VCL)", @"5: Coded slice of an IDR picture (VCL)", // I frame […]

多路复用的原始H.264到MP4文件,一些奇怪的错误

我正在做的是在Xcode 7.3的IOS应用程序。 我使用UDP从ip摄像头获得h264数据,数据可以正确解码和显示(由ffmpeg解码)。 现在我想把原始的H264数据复制到一个mp4文件(一些用户可能想logging他在手机上观看的内容),使用ffmpeg。 代码运行时没有发生任何错误,并且可以在我的计算机上使用QuickTime正常播放结果文件。 但当用iphone的默认video播放器在iPhone上播放时,它不能正常播放。这是我的代码。 希望有人能告诉我该怎么办,谢谢! 在里面 AVFormatContext *formatContext; AVOutputFormat *outputFormat; AVStream *video_st; int STREAM_FRAME_RATE = 15; unsigned long video_PTS; int initRecorder(char *fileName, int width, int height) { video_st = NULL; video_PTS = 0; av_register_all(); outputFormat = av_guess_format(NULL, fileName, NULL); if (!outputFormat) { zj_printf("av_guess_format -> fail\n"); return -1; } outputFormat->video_codec = AV_CODEC_ID_H264; avformat_alloc_output_context2(&formatContext, NULL, […]

iOS上通过RTMP上的H264videostream

有一点挖掘,我已经find了一个库,从正在写入的.mp4文件中提取NAL单元。 我试图打包这个信息flv通过使用libavformat和libavcodec RTMP。 我使用以下方法设置videostream: -(void)setupVideoStream { int ret = 0; videoCodec = avcodec_find_decoder(STREAM_VIDEO_CODEC); if (videoCodec == nil) { NSLog(@"Could not find encoder %i", STREAM_VIDEO_CODEC); return; } videoStream = avformat_new_stream(oc, videoCodec); videoCodecContext = videoStream->codec; videoCodecContext->codec_type = AVMEDIA_TYPE_VIDEO; videoCodecContext->codec_id = STREAM_VIDEO_CODEC; videoCodecContext->pix_fmt = AV_PIX_FMT_YUV420P; videoCodecContext->profile = FF_PROFILE_H264_BASELINE; videoCodecContext->bit_rate = 512000; videoCodecContext->bit_rate_tolerance = 0; videoCodecContext->width = STREAM_WIDTH; videoCodecContext->height […]

从quicktime MOV文件parsingh.264 NAL单元

我试图从iPhone上的MOV文件中获得h.264 NAL单元,以便将从iPhone相机到服务器的RTP h.264video。 苹果的API不允许从摄像机输出直接访问编码的比特stream,所以我只能在正在写入的时候访问MOV文件。 根据苹果的MOV结构参考 ,我已经将MOV文件parsing为Atoms ,但是现在我需要从mdatprimefaces中提取NAL单元 ,以便将其打包到RTP并进行stream式处理。 我很乐意在这里得到一些帮助,因为我找不到有关mdat结构的文档。 谢谢!

在iPhone 3GS和iPhone 4上embeddedMobile Safari的HTML5video

我在服务器上的mp4文件中有一个H.264 / AAC编码的video,MIMEtypes的video/ mp4被添加到networking服务器(IIS 7),我有一个带有video标签的页面: <video id="html5-video" width="360" height="202" poster="/images/poster.png" controls> <source src="/video/Web-360×202-14MB.mp4" type="video/mp4"> </video> 在iPhone 4上工作的很好,但在iPhone 3GS(相同的iOS版本,4.3.2)上只显示海报图像,并点击它不启动video。 当我尝试直接打开video文件时,我从Mobile Safari开发者控制台得到一个“提示”: 其他提示 的QuickTime 电影无法播放 在iPhone 3GS上使用HTML5video需要什么? 这是一个编码问题?

与原始NAL单位一起使用AVAssetWriter

我注意到在AVAssetWriterInput的iOS文档中,你可以传递nil给outputSettings字典来指定input数据不应该被重新编码。 用于编码附加到输出的媒体的设置。 通过零来指定附加的样本不应该被重新编码。 我想利用这个function来传递一个H.264原始NALstream,但是我无法将我的原始字节stream转换成一个CMSampleBuffer ,我可以将它传递到AVAssetWriterInput的appendSampleBuffer方法中。 我的NALstream只包含SPS / PPS / IDR / P NAL(1,5,7,8)。 我一直无法find有关如何使用预编码的H264数据与AVAssetWriter的文件或结论性的答案。 生成的video文件无法播放。 我如何正确打包NUM单元到CMSampleBuffers ? 我是否需要使用起始码前缀? 长度前缀? 我是否需要确保每个CMSampleBuffer只放置一个NAL? 我的最终目标是创build一个H264 / AAC的MP4或MOV容器。 这是我一直在玩的代码: -(void)addH264NAL:(NSData *)nal { dispatch_async(recordingQueue, ^{ //Adapting the raw NAL into a CMSampleBuffer CMSampleBufferRef sampleBuffer = NULL; CMBlockBufferRef blockBuffer = NULL; CMFormatDescriptionRef formatDescription = NULL; CMItemCount numberOfSampleTimeEntries = 1; CMItemCount numberOfSamples = […]

我们如何才能从iPhone相机获得H.264编码的videostream?

我正在使用以下来获取video采样缓冲区: – (void) writeSampleBufferStream:(CMSampleBufferRef)sampleBuffer ofType:(NSString *)mediaType 现在我的问题是,如何从上面的sampleBuffer获得h.264编码的NSData。 请build议。

h.264video不会在iOS上播放

我有一个video文件编码与h.264不会在iOS上玩,我想知道为什么。 这是HTML: <video style="width: 480px; height: 360px;" autoplay controls> <source src="sample.mp4"> </video> 这个video在桌面浏览器中可以正常播放,但是在iOS设备上,我看到一个不可点击的播放图标。 我读过,这意味着video的编码有问题,但我不确定是什么问题。 我通过MediaInfo运行video: General Format : MPEG-4 Format profile : Base Media Codec ID : isom File size : 706 KiB Duration : 15s 256ms Overall bit rate mode : Variable Overall bit rate : 379 Kbps Video ID : 1 Format : […]

从iOS AVAssetWriter生成的原始H264 mdat获取PTS

我试图同时读写由AVAssetWriter写的H.264 mov文件。 我设法提取单独的NAL单元,将它们打包到ffmpeg的AVPackets中,并使用ffmpeg将它们写入另一个video格式。 它的工作原理和结果文件播放良好,除了播放速度不正确。 如何从原始H.264数据计算正确的PTS / DTS值? 或者,也许还有其他的方式来得到它们? 以下是我所尝试的: 将捕获的最小/最大帧速率限制为30,并假定输出文件将为30 fps。 实际上它的fps总是比我设定的值小。 而且,我认为fps在数据包之间并不是一成不变的。 记住每个书面样本的呈现时间戳,并假定样本与NALU一一映射,并将保存的时间戳应用于输出数据包。 这不起作用。 将PTS设置为0或AV_NOPTS_VALUE。 不起作用。 从谷歌search我了解,原始的H.264数据通常不包含任何时间信息。 它有时可以在SEI内部有一些时间信息,但我使用的文件没有它。 另一方面,有一些应用程序正在做我正在做的事情,所以我认为这是可能的。