Tag: h.264

如何使用x264 C API将一系列图像编码到H264中?

如何使用x264 C API将RBG图像编码成H264帧? 我已经创build了一个RBG图像序列,现在我怎么能把这个序列转换成一个H264帧序列? 特别是,如何将这个RGB图像序列编码成一个由单个初始H264关键帧跟随的相关H264帧组成的H264帧序列?

FFMPEG(libx264)“高度不能被2整除”

我正尝试使用libx264编解码器使用FFMPEG从一组帧中编码.mp4video。 这是我正在运行的命令: /usr/local/bin/ffmpeg -r 24 -i frame_%05d.jpg -vcodec libx264 -y -an video.mp4 我有时会得到以下错误: [libx264 @ 0xa3b85a0] height not divisible by 2 (520×369) 在search了一下后,似乎这个问题与缩放algorithm有关,可以通过添加-vf参数来解决。 但是,在我的情况下,我不想做任何缩放。 理想情况下,我想保持尺寸完全一样的框架。 有什么build议? 是否有一些h264执行的宽高比?

使用Android MediaCodec从相机编码H.264

我试图让这个工作在Android 4.1(使用升级的华硕Transformer平板电脑)。 感谢Alex对我以前的问题的回应 ,我已经能够将一些原始的H.264数据写入一个文件,但是这个文件只能用ffplay -f h264来ffplay -f h264 ,好像丢失了关于帧率的所有信息快速播放)。 此外颜色空间看起来不正确(atm使用摄像机在编码器侧的默认值)。 public class AvcEncoder { private MediaCodec mediaCodec; private BufferedOutputStream outputStream; public AvcEncoder() { File f = new File(Environment.getExternalStorageDirectory(), "Download/video_encoded.264"); touch (f); try { outputStream = new BufferedOutputStream(new FileOutputStream(f)); Log.i("AvcEncoder", "outputStream initialized"); } catch (Exception e){ e.printStackTrace(); } mediaCodec = MediaCodec.createEncoderByType("video/avc"); MediaFormat mediaFormat = MediaFormat.createVideoFormat("video/avc", 320, […]

Android上使用FFMPEG

有人知道如何在Android上使用FFMPEG将YUV420帧转换为H.264吗? 我用NDK移植了FFMPEG在Android上的工作,我只是不知道如何使用它。 源代码表示赞赏。

获取H264videostream的尺寸

我正在尝试从H264stream获取尺寸(高度和宽度)。 我知道要从mpeg2stream中获取相同的细节,您必须查看序列头开始代码((01B3))之后的四个字节。 H264的逻辑是否一样? 将不胜感激任何帮助,我得到..

MediaCodec和Camera:颜色空间不匹配

我一直在尝试使用H264编码来处理Android平板电脑上使用新的低级别MediaCodec的摄像头捕获的input。 我经历了一些困难,因为MediaCodecAPI的文档logging很差,但是我终于有了一些工作。 我正在设置相机,如下所示: Camera.Parameters parameters = mCamera.getParameters(); parameters.setPreviewFormat(ImageFormat.YV12); // <1> parameters.setPreviewFpsRange(4000,60000); parameters.setPreviewSize(640, 480); mCamera.setParameters(parameters); 对于编码部分,我正在实例化MediaCodec对象,如下所示: mediaCodec = MediaCodec.createEncoderByType("video/avc"); MediaFormat mediaFormat = MediaFormat.createVideoFormat("video/avc", 640, 480); mediaFormat.setInteger(MediaFormat.KEY_BIT_RATE, 500000); mediaFormat.setInteger(MediaFormat.KEY_FRAME_RATE, 15); mediaFormat.setInteger(MediaFormat.KEY_COLOR_FORMAT, MediaCodecInfo.CodecCapabilities.COLOR_FormatYUV420Planar); // <2> mediaFormat.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, 5); mediaCodec.configure(mediaFormat, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE); mediaCodec.start(); 最后的目标是创build一个RTPstream(和Skype相对应),但到目前为止,我只是将原始的H264直接传输到我的桌面。 在那里我使用以下GStreamerpipe道来显示结果: gst-launch udpsrc port=5555 ! video/x-h264,width=640,height=480,framerate=15/1 ! ffdec_h264 ! autovideosink 一切运作良好,除了颜色。 我需要在计算机中设置2种颜色格式:一种用于摄像机预览(标有<1> ),另一种用于MediaCodec对象(标有<2> ) 要确定行<1>的可接受值,我使用了parameters.getSupportedPreviewFormats() […]

如何处理原始的UDP数据包,以便它们可以通过directshow源filter中的解码器filter进行解码

很长的故事: 有一个H264 / MPEG-4来源 我可以连接这个来源与RTSP协议。 我可以通过RTP协议获得原始的UDP数据包。 然后将这些原始UDP数据包发送到解码器[h264 / mpeg-4] [DS Source Filter] 但是这些“原始的”UDP数据包不能被解码器[h264 / mpeg-4]filter解码 不久: 如何处理这些原始UDP数据以便通过H264 / MPEG-4解码器filter进行解码? 任何人都可以清楚地确定与H264 / MPEGstream有关的步骤吗? 额外信息: 我可以用FFmpeg做到这一点…我真的不知道如何FFmpeg处理原始数据,以便它可以通过解码器解码。

如何使用VideoToolbox解压H.264videostream

我在计算如何使用Apple的硬件加速video框架来解压缩H.264videostream时遇到了很多麻烦。 几个星期后,我想出来,想分享一个广泛的例子,因为我找不到一个。 我的目标是在WWDC14会议513中介绍一个video工具箱的全面,有益的例子。 我的代码不能编译或运行,因为它需要与基本的H.264stream(如从文件读取的video或从网上stream传输的video)集成,需要根据具体情况进行调整。 我应该提到,除了我在学习Google的过程中学到的知识之外,我对video编解码的经验还很less。 我不知道所有的video格式,参数结构等细节,所以我只包括我认为你需要知道的东西。 我正在使用XCode 6.2并已部署到运行iOS 8.1和8.2的iOS设备。

使用ffmpeg连接两个mp4文件

我试图使用ffmpeg连接两个mp4文件。 我需要这是一个自动过程,因此我select了ffmpeg。 我将这两个文件转换成.ts文件,然后将它们连接起来,然后尝试对该连接的.ts文件进行编码。 这些文件是h264和aac编码,我希望保持质量相同或尽可能接近原始。 ffmpeg -i part1.mp4 -vcodec copy -vbsf h264_mp4toannexb -acodec copy part1.ts ffmpeg -i part2.mp4 -vcodec copy -vbsf h264_mp4toannexb -acodec copy part2.ts cat part1.ts part2.ts > parts.ts ffmpeg -y -i parts.ts -acodec copy -ar 44100 -ab 96k -coder ac -vbsf h264_mp4toannexb parts.mp4 不幸的是我在编码过程中从ffmpeg得到下面的错误信息: [h264 @ 0x1012600]sps_id out of range [h264 @ 0x1012600]non-existing SPS […]

H.264stream的序列/图像参数集的可能位置

我正在研究一个H.264解码器,我想知道在哪里可以findSPS和PPS。 我的参考文献告诉我这些是在H.264-Stream中编码的NAL单元,但是当我用IsoViewer看一个例子 – MP4文件时,它说SPS和PPS在avcC Box中。 这个工作到底如何? 它如何查找.mkv文件或其他H.264容器? 提前致谢!