h264
文章平均质量分 66
文长
咿呀呀
展开
-
h.264保存flv文件
首先 写flv头。byte[] cFlvHeader = new byte[]{0x46,0x4C,0x56,0x01,0x01,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x00};WriteFile.writeBuf(cFlvHeader);接下来写metadata,可有可无。然后是sps、pps这些header。privat原创 2014-12-21 09:57:10 · 918 阅读 · 0 评论 -
obs之libx264编码
obs中使用libx264编码的例子,包含了动态设置码率。#include "Main.h"#include #include extern "C"{#include "../x264/x264.h"}void get_x264_log(void *param, int i_level, const char *psz, va_list argptr){ S原创 2017-09-01 15:09:24 · 1596 阅读 · 0 评论 -
ios libx264 h264 encode
#import "X264Encode.h"#include "x264.h"#define KEY_FRAME_INTERVAL 30typedef struct{ x264_param_t * param; x264_t *handle; x264_picture_t * picture; x264_nal_t *nal;} X264Encode原创 2017-09-01 14:43:49 · 371 阅读 · 0 评论 -
ios ffmpeg h264 decode
ios使用ffmpeg解码h264数据封装。#import "FFMpegAVCDecoder.h"#ifdef __cplusplusextern "C" {#endif #include #include #include #include #ifdef __cplusplus};#endif@interface FFMpegAVCDecoder(原创 2017-09-01 10:56:30 · 423 阅读 · 0 评论 -
ios ffmpeg h264 encode
简单封装了下,ffmepg需要包含libx264。#import "FFMpegAVCEncode.h"#ifdef __cplusplusextern "C" {#endif #include #include #include #include #ifdef __cplusplus};#endif@implementation FFMpegAV原创 2017-09-01 10:53:24 · 379 阅读 · 0 评论 -
VTDecompressionSessionDecodeFrame -8969
解码时候,需要用h264数据长度替换0x00 0x00 0x00 0x01,注意长度大小端,否则会出现-8969错误-(int)decode:(char*)buf len:(int)len { CVPixelBufferRef outputPixelBuffer = NULL; CMBlockBufferRef blo原创 2017-08-15 15:09:28 · 1704 阅读 · 0 评论 -
ffmpeg encode/decode example
00001 /*00002 * Copyright (c) 2001 Fabrice Bellard00003 *00004 * Permission is hereby granted, free of charge, to any person obtaining a copy00005 * of this software and associated documentati原创 2017-08-18 17:41:47 · 1638 阅读 · 0 评论 -
ios ffmpeg+libx264
1、编译x264脚本:https://github.com/depthlove/x264-iOS-build-script2、编译ffmpeg脚本:https://github.com/kewlbear/FFmpeg-iOS-build-script3、build-ffmpeg.sh修改:#X264=`pwd`原创 2017-08-11 16:13:13 · 713 阅读 · 0 评论 -
Android7 mediacodec SEI
发现Android7使用mediacodec进行avc编码,得到的第一个关键帧的h264数据中包含SEI这种nal。如果我们不需要,或者加上之后对我们有影响,可以去掉。private int findNextNalPos(byte[] buf,int pos) { for (int i = pos; i ; i++) { if原创 2017-06-08 20:46:06 · 1420 阅读 · 0 评论 -
iOS h264 硬解
记录。http://www.voidcn.com/blog/dongtinghong/article/p-5047279.html首先要把 VideoToolbox.framework 添加到工程里,并且包含以下头文件。 #include 解码主要需要以下三个函数VTDecompressionSessionCreate 创建解码 sessionVTDecom原创 2016-10-24 15:33:07 · 2481 阅读 · 0 评论 -
iOS h264硬编码
从这里抄过来的:https://github.com/LevyGG/iOS-H.264-hareware-encode-and-decode/blob/master/VTDemoOniPad/H264HwEncoderImpl.h#import@import AVFoundation;@protocol H264HwEncoderIm原创 2016-10-24 15:22:31 · 2767 阅读 · 0 评论 -
MP4v2获得h264数据
int32_t openFiles() { if (mp4File == NULL) { mp4File = MP4Read(mp4FilePathAndName); } if (mp4File == NULL) { NL_LOGE("mp4 file read error"); return -1; }原创 2016-01-27 10:41:14 · 2920 阅读 · 0 评论 -
FFmpegFrameRecorder保存视频or rtmp发布
记录一下:javacv/samples/WebcamAndMicrophoneCapture.javaimport java.nio.ByteBuffer; import java.nio.ByteOrder; import java.nio.ShortBuffer; import java原创 2015-12-21 20:23:09 · 22777 阅读 · 4 评论 -
mediacodec_encode_sample.java
int width = 328, height = 248; int bitRate = 1000000; int frameRate = 15; String mimeType = "video/avc"; int threshold = 50; int原创 2016-01-21 14:49:06 · 876 阅读 · 0 评论 -
Mp4v2实现h264+aac打包成Mp4视频文件
使用mp4v2实现录制mp4视频,需要准备如下信息:1、获取mp4v2源码并编译成库文件,对于mp4v2的编译可以看前面的文章android 编译mp4v2 2.0.0生成动态库 ;2、获取h264数据中的sps和pps数据,如果不会的话可以查看前面的文章 点击打开链接;3、获取音频解码信息,在调用MP4SetTrackESConfiguration使用,具体的获取方式一转载 2016-01-20 11:04:50 · 9764 阅读 · 3 评论 -
移动互联网实时视频通讯之视频采集
原文:http://blog.easemob.com/?p=277一 、前言一套完整的实时网络视频通讯系统包括视频采集、视频编码、视频传输、视频解码和播放。对于视频采集,大多数视频编码器对输入原始视频的格式要求是YUV420。YUV420格式是YUV格式的一种,YUV分为三个分量,Y代表亮度,也就是灰度值,U和V表示的是色度,用于描述图像的色彩和饱和度。YUV420格式的数据的转载 2015-10-20 10:13:29 · 845 阅读 · 0 评论 -
x264动态码率
新版的x264可以支持动态调整码率了,不过具体哪个版本开始不清楚。首先,在x264_encoder_open之前设置: x264_param_t param; param.rc.i_rc_method=X264_RC_ABR;param.rc.i_vbv_max_bitrate = (要设置的最大码率);param.rc.i_bitrate原创 2014-11-27 16:31:23 · 2926 阅读 · 0 评论 -
Anroid camera + mediacodec
具体代码参考:https://github.com/google/grafika/tree/master/src/com/android/grafika主要流程:1、生成一个oes textrure2、通过上面生成的oes texture,new一个surfacetexture,设置回调surfacetexture.setOnFrameAvailableListener(CB);原创 2017-10-21 14:35:16 · 776 阅读 · 0 评论