草庐IT

c++ - H.264编码的NAL/切片分割

我正在开发一个需要通过UDP(一种视频通话)实时传输H.264编码视频的应用程序。最近我们已切换到硬件编码器,它仅支持有限数量的H.264配置文件。结果,每个编码的视频帧现在都由一个NALu组成。更准确地说,对于IDR(关键)帧,编码器生成SSP、PSP和单个IDR切片,对于其他帧-单个非IDR切片。现在,我的目标是将切片NALu分成几个较小的切片,因为如果NALu不能完全组装而发生数据包丢失,它就会完全丢失。至少我需要在空间上分割切片,即将宏block的范围放入不同的NALus中。如果可能-我还想提取质量层,以便基础层可以受到更多冗余数据包(FEC)的保护。注意:我不是在谈论转码。它

c++ - ffmpeg::avcodec_encode_video 设置 PTS h264

我正在尝试使用libavcodec将视频编码为H264ffmpeg::avcodec_encode_video(codec,output,size,avframe);返回一个错误,我没有正确设置avframe->pts值。我尝试将其设置为0,1、AV_NOPTS_VALUE和90khz*framenumber但仍然出现错误non-strictly-monotonicPTSffmpeg.c示例使用ffmpeg::av_rescale_q()设置packet.pts,但这仅在您对帧进行编码后调用!当与MP4V编解码器一起使用时,avcodec_encode_video()会自行正确设置pt

c++ - 如何控制码率 MEDIASUBTYPE_H264 directshow?

我有一个logitechc920网络摄像头,它提供一个编码的h264捕获pin(子类型:MEDIASUBTYPE_H264)。h264pin支持以下分辨率:FORMAT_VideoInfo-subtype:MEDIASUBTYPE_H264640x480@30fpsFORMAT_VideoInfo-subtype:MEDIASUBTYPE_H264160x90@30fpsFORMAT_VideoInfo-subtype:MEDIASUBTYPE_H264160x120@30fpsFORMAT_VideoInfo-subtype:MEDIASUBTYPE_H264176x144@30fp

ios - 在 iOS 上解码编码为 H.264 的单帧

我正在将PC上生成的单个图像编码为H.264,通过网络将其发送到iPad,我想对其进行解码。iPad端的循环将是:从网络抓取帧对其进行解码。展示它。但是,我找不到一个API可以在给定编码帧的单个缓冲区的情况下解码为原始图像。我想利用iPad上的硬件解码。我最后的计划是创建一个内存映射文件,将单个帧写入该文件并将该文件用作MPMoviePlayerController的输入。这是一个非常hacky的解决方案。有人可以建议我如何获取编码的内存缓冲区并使用硬件将其解码到另一个内存缓冲区吗?谢谢 最佳答案 这听起来像是在PC端更适合JPG或

ios - 从 quicktime MOV 文件解析 h.264 NAL 单元

我正在尝试从iPhone上的MOV文件中获取h.264NAL单元,为了将iPhone摄像头中的h.264视频RTP传输到服务器。Apple的API不允许直接访问来自相机输出的编码比特流,因此我只能访问正在写入的MOV文件。根据Apple'sMOVstructurereference,我已将MOV文件解析为Atoms但现在我需要从mdatatom中提取NAL单元,以便将其打包到RTP并进行流式传输。我很乐意在这里得到一些帮助,因为我找不到关于mdat结构的文档。谢谢! 最佳答案 mdat原子是一大块数据,它本身毫无意义。要了解其内容,

ios - 带有流式 H.264 样本的 AVAssetReader

我正在编写一个RTSP/H.264客户端。Live555解析RTSP很好,但是用ffmpeg软件解码太慢了。我想使用AVFoundation对样本进行硬件解码。我不知道该怎么做。我的问题是,有什么方法可以让AVFoundation(AVAssetReader?)在这些样本进入时对其进行解码并在屏幕上显示提要吗? 最佳答案 从现在开始,使用H264编码的媒体样本来自内存无法使用硬件解码,因为iOS不开放这些接口(interface),您只能解码本地文件或通过HTTPLiveStreaming。然而,有一个可能的解决方案,将每个样本写入

ios - 解码 H264 VideoToolkit API 失败,在 VTDecompressionSessionDecodeFrame 中出现错误 -12911

我正在尝试解码.H264视频数据的原始流,但我找不到创建合适的方法-(void)decodeFrameWithNSData:(NSData*)datapresentationTime:(CMTime)presentationTime{@autoreleasepool{CMSampleBufferRefsampleBuffer=NULL;CMBlockBufferRefblockBuffer=NULL;VTDecodeInfoFlagsinfoFlags;intsourceFrame;if(dSessionRef==NULL)[selfcreateDecompressionSession

iphone - AVAssetWriterInput H.264 直通到 QuickTime (.mov) - 传入 SPS/PPS 以创建 avcC 原子?

我有一个H.264/AVCNAL流,由类型1(P帧)、5(I帧)、7(SPS)和8(PPS)组成。我想将它们写入.mov文件而不重新编码。我正在尝试使用AVAssetWriter来执行此操作。AVAssetWriterInput的文档指出:PassingnilforoutputSettingsinstructstheinputtopassthroughappendedsamples,doingnoprocessingbeforetheyarewrittentotheoutputfile.Thisisusefulif,forexample,youareappendingbuffersth

ios - h.264 视频无法在 iOS 上播放

我有一个用h.264编码的视频文件不能在iOS上播放,我想知道为什么。这是HTML:该视频在桌面浏览器中播放良好,但在iOS设备上我看到一个不可点击的播放图标,上面有一条斜线。我读到这意味着视频的编码有问题,但我不确定是什么问题。我通过MediaInfo运行视频:GeneralFormat:MPEG-4Formatprofile:BaseMediaCodecID:isomFilesize:706KiBDuration:15s256msOverallbitratemode:VariableOverallbitrate:379KbpsVideoID:1Format:AVCFormat/In

ios - 在 ios 中解码 h264

我是AVFoundation和解码过程的新手。我需要解码h264视频文件并在iphone中播放它...谁能给我指导。我不想使用ffmpeg或任何第三方库来做到这一点。据我所知,使用Avfoundation编码是可能的...这是我认为用于编码但完全不确定的代码...floatbitsPerPixel;CMVideoDimensionsdimensions=CMVideoFormatDescriptionGetDimensions(currentFormatDescription);intnumPixels=dimensions.width*dimensions.height;intbit