MediaCodec编码后保存的视频时间不正确,视频播放太快 [问题点数:160分,无满意结帖,结帖人xj396282771]

Bbs6
本版专家分:6861
Blank
红花 2018年6月 移动开发大版内专家分月排行榜第一
2018年5月 移动开发大版内专家分月排行榜第一
Blank
蓝花 2018年4月 移动开发大版内专家分月排行榜第三
结帖率 100%
Bbs6
本版专家分:6861
Blank
红花 2018年6月 移动开发大版内专家分月排行榜第一
2018年5月 移动开发大版内专家分月排行榜第一
Blank
蓝花 2018年4月 移动开发大版内专家分月排行榜第三
Bbs6
本版专家分:6861
Blank
红花 2018年6月 移动开发大版内专家分月排行榜第一
2018年5月 移动开发大版内专家分月排行榜第一
Blank
蓝花 2018年4月 移动开发大版内专家分月排行榜第三
Bbs6
本版专家分:6861
Blank
红花 2018年6月 移动开发大版内专家分月排行榜第一
2018年5月 移动开发大版内专家分月排行榜第一
Blank
蓝花 2018年4月 移动开发大版内专家分月排行榜第三
Bbs1
本版专家分:0
Bbs6
本版专家分:6861
Blank
红花 2018年6月 移动开发大版内专家分月排行榜第一
2018年5月 移动开发大版内专家分月排行榜第一
Blank
蓝花 2018年4月 移动开发大版内专家分月排行榜第三
MediaCodec编码后的视频时间不正确的问题
本人android新手一枚, 最近在做摄像头录像的时候,用MediaCodec<em>编码</em>摄像头的yuv数据成h264, 但是发现<em>编码</em>后的h264文件<em>时间</em>不对..比如录像录了20秒,但是h264文件就只有12秒..<em>视频</em>播放速度加快了..但是在摄像头fps和<em>编码</em>器fps设置都是一样的25, h264文件属性里面显示的也是25fps.. 所以很困惑,想问问这是什么原因..望大牛指导.. <em>编码</em>代码如下:rnrnrn ByteBuffer[] iBufs = mMediaCodec.getInputBuffers();rn ByteBuffer[] oBufs = mMediaCodec.getOutputBuffers();rnrn long audioAbsolutePtsUs = System.nanoTime() / 1000;rn rn int iIdx = mMediaCodec.dequeueInputBuffer(-1);rn if (iIdx >= 0) rn ByteBuffer iBuf = iBufs[iIdx];rn iBuf.clear();rn iBuf.put(in);rn mMediaCodec.queueInputBuffer(iIdx, 0, in.length, audioAbsolutePtsUs, 0);rn rn rn MediaCodec.BufferInfo bufInfo = new MediaCodec.BufferInfo();rn int oIdx = mMediaCodec.dequeueOutputBuffer(bufInfo, 0);rn while (oIdx >= 0) rn ByteBuffer oBuf = oBufs[oIdx];rn byte[] out = new byte[bufInfo.size];rn oBuf.get(out);rn mOutput.write(out, 0, out.length);rn rn mMediaCodec.releaseOutputBuffer(oIdx, false); rn oIdx = mMediaCodec.dequeueOutputBuffer(bufInfo, 0);rn
使用MediaCodeC将图片集编码视频
原文地址 原创文章,转载请联系作者 绿生莺啼春正浓,钗头青杏小,绿成丛。 玉船风动酒鳞红。歌声咽,相见几时重? 提要 这是MediaCodeC系列的第三章,主题是如何使用MediaCodeC将图片集<em>编码</em>为<em>视频</em>文件。在Android多媒体的处理上,MediaCodeC是一套非常有用的API。此次实验中,所使用的图片集正是MediaCodeC硬解码<em>视频</em>,并将<em>视频</em>帧存储为图片文件文章中,对<em>视频</em>解码出...
Android——MediaCodec录制视频保存后,视频被旋转90度了
[size=12px][code=java]rn/**rn*开始录制rn*/rn public void startCapture() rn if (!isCapturing && initCodec()) rn codec.start();rn inputBuffers = codec.getInputBuffers();rn outputBuffers = codec.getOutputBuffers();rn frameFetcher = new FrameFetcher();rn frameFetcher.start();rn colorConverter = YUV420Converter.create(MyCamera.PREVIEW_FORMAT, currentSize);rn isCapturing = true;rn Log.i(TAG, "Start capture.");rn rn rn/**rn*初始化rn*/rnprivate boolean initCodec() rn codec = MediaCodec.createEncoderByType("video/avc");rn MediaFormat mediaFormat = MediaFormat.createVideoFormat("video/avc", currentSize.width,rn currentSize.height);rn int bitRate = camera.getFpsRange()[1] * currentSize.width * currentSize.height / 15;rn mediaFormat.setInteger(MediaFormat.KEY_COLOR_FORMAT, COLOR_FORMAT);rn mediaFormat.setInteger(MediaFormat.KEY_BIT_RATE, bitRate);rn mediaFormat.setInteger(MediaFormat.KEY_FRAME_RATE, camera.getFpsRange()[1]);rn mediaFormat.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, 3);rn mediaFormat.setInteger(MediaFormat.KEY_MAX_INPUT_SIZE, camera.getCurrentFrameSize());rn try rn codec.configure(mediaFormat, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);rn rn catch (IllegalStateException e) rn codec.release();rn codec = null;rn return false;rn rn return true;rn [/code][/size]
MediaCodec 编码时间戳问题
在MediaCodec 的<em>编码</em>时候,需要调用queueInputBuffer( int index, int offset, int size, long presentationTimeUs, int flags) 函数,将装有待<em>编码</em>的帧字节数组传给<em>编码</em>器,第四个参数 代表的<em>编码</em><em>时间</em>戳,这个<em>编码</em><em>时间</em>戳非常重要,单位是 微秒,不传或者传错,都会导致解码错误甚至播放不了。 1、不要赋值0,网上好多...
FFMPEG编码保存视频文件播放速度太快原因
今天偶然发现自己使用ffmepg从摄像头采集然后<em>保存</em>文件,使用播放器播放,速度很快,网上查了很多资料都说是帧率的问题,可特么倒是说明白啊,帧率帧率,你倒是说明白帧率错在哪啊。最后自己摸索,发现所谓的帧率问题都是人云亦云。真正的原因并不是帧率问题,准确说是输入文件的帧率需要和输出文件的帧率要一致,如果不一致就会出现<em>视频</em>文件播放过慢或者过快的问题。 下面举1个李子: 1:输入文件是摄像头 1....
编码速度太快怎么办
不好意思,我基本上每天都是心不在焉、拖拖拉拉的写代码,可是速度还是<em>太快</em>,一天可以做为5个表做分页显示、添加、修改、删除、打印至少有:rnxxxSetter/Getter.java *5;rnxxxDAO.java *5rnxxxControl.java *5;rnxxxList.jsp *5;rnxxxEdit.jsp *5;rnxxxPrint.jsp *5;rn至少有30个文件,天知道如果我专心的写程序一天不知道要写多少。。怕要写100个吧。。rn虽然很快但是bug率很低,基本上都是一次编写一次调试,那些令人头痛的页面客户端验证更是不会出没有任何错误。rnrn不知道我是不是为<em>编码</em>而生,谁有做不完的<em>编码</em>可以叫一声,钱可以随便给点,主要是好玩。。
MediaCodec视频硬解码-MediaCodec解码AVPacket
FFmpeg+OpenGL ES+OpenSL ES打造Android<em>视频</em>播放器教程,该课程基于C++语言,用FFmpeg、OpenGL ES、OpenSL ES和MediaCodec打造Android<em>视频</em>播放器。以录播课形式讲解课程所涉及的知识点和整体流程,每节课都有相关的PPT和源码资料,并用通俗易懂的方式讲解课程。适合人群 有一定的C++基础和Android开发经验。
MediaCodec实现视频硬解码
什么是MediaCodec MediaCodec是安卓原生提供的多媒体编解码器,大体工作流程就是MediaCodec提供一个输入流的缓冲数组,我们将需要编解码的流给MediaCodec,MediaCodec内部进行编解码然后输出你想要的编解码后的流。 在其他场景中也有surfaceview作为数据源的,而我的流程大体就是通过私有协议获取h264裸数据,然后解码成yuv格式,下面将描述我的实现过程。...
MediaCodec编码pcm为aac
android音频<em>编码</em>,通过mediaCodec<em>编码</em>pcm为aac格式
MediaCodec、AudioRecord 硬件编码录制视频
无论是解码、转码、<em>编码</em>,MediaCodec 的使用流程基本都是一致的,因此话不多说,直接上代码: public class HWRecordActivity extends BaseActivity implements View.OnClickListener, Camera.PreviewCallback, SurfaceHolder.Callback { pri...
控制视频播放,指定时间视频暂停
[img=https://img-bbs.csdn.net/upload/201609/22/1474552894_234255.png][/img]rn各位大神,我希望在微信上实现上述的在指定<em>时间</em>让<em>视频</em>暂停的功能,那位有经验或者好点方法吗?rn求指教!不胜感激!
关于视频保存时间控制
我用VFW中的capSetCallbackOnFrame来确定开始<em>保存</em>从摄像头获得的图像,用capFileSaveAs来<em>保存</em>图像,但现在遇到的问题是怎么对<em>保存</em>的<em>视频</em>长度进行限制,例如:要求<em>保存</em>10秒的<em>视频</em>图像该怎么办?
Android 视频 编码....MediaCodec ... 最后20 分 求指导
声明rn[code=java]rn this.mediaCodec = MediaCodec.createEncoderByType("video/avc");rnrn MediaFormat mediaFormat = MediaFormat.createVideoFormat("video/avc", this.width, this.height);rn mediaFormat.setInteger(MediaFormat.KEY_BIT_RATE, 300000);rn mediaFormat.setInteger(MediaFormat.KEY_FRAME_RATE, 20);rn mediaFormat.setInteger(MediaFormat.KEY_COLOR_FORMAT, MediaCodecInfo.CodecCapabilities.COLOR_FormatYUV420SemiPlanar);rn mediaFormat.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, 5);rn this.mediaCodec.configure(mediaFormat, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);rn this.mediaCodec.start();rnrnrnrn[/code]rnrnrn解码线程rn[code=java]rn EncoderThread = new Thread(new Runnable() rnrn @Overridern public void run() rn isRuning = true;rn byte[] input = null;rn while (isRuning) rn if (dataListIn != null)rn input = dataListIn.poll();rn if (input != null) rn try rn ByteBuffer[] inputBuffers = mediaCodec.getInputBuffers();rn ByteBuffer[] outputBuffers = mediaCodec.getOutputBuffers();rn int inputBufferIndex = mediaCodec.dequeueInputBuffer(-1);rn if (inputBufferIndex >= 0) rn ByteBuffer inputBuffer = inputBuffers[inputBufferIndex];rn inputBuffer.clear();rn inputBuffer.put(input);rn mediaCodec.queueInputBuffer(inputBufferIndex, 0, input.length, 0, 0);rn// inputBuffer.put(yuv420Byte);rn// mediaCodec.queueInputBuffer(inputBufferIndex, 0, yuv420Byte.length, 0, 0);rn rnrn MediaCodec.BufferInfo bufferInfo = new MediaCodec.BufferInfo();rn int outputBufferIndex = mediaCodec.dequeueOutputBuffer(bufferInfo, 0);rn while (outputBufferIndex >= 0) rn ByteBuffer outputBuffer = outputBuffers[outputBufferIndex];rn byte[] outData = new byte[bufferInfo.size];rn outputBuffer.get(outData);rn if (dataListOut != null)rn dataListOut.add(outData);rnrn mediaCodec.releaseOutputBuffer(outputBufferIndex, false);rn outputBufferIndex = mediaCodec.dequeueOutputBuffer(bufferInfo, 0);rn rn catch (Throwable t) rn t.printStackTrace();rn rn else rn try rn Thread.sleep(500);rn catch (InterruptedException e) rn e.printStackTrace();rn rn rn rnrn mediaCodec.stop();rn mediaCodec.release();rn rn );rn EncoderThread.start();rn[/code]rnrnrnrn以上代码 实现的对应解码...在 真机测试 尺寸在800*600 就出现解码 绿屏rnrn另外真机只支持 COLOR_FormatYUV420SemiPlanarrnrn请大大 指点指点...这个 <em>视频</em><em>编码</em>.解码rnrn
Mediacodec
Mediacodec
MediaCodec视频硬解码-OpenGL渲染MediaCodec解码数据
FFmpeg+OpenGL ES+OpenSL ES打造Android<em>视频</em>播放器教程,该课程基于C++语言,用FFmpeg、OpenGL ES、OpenSL ES和MediaCodec打造Android<em>视频</em>播放器。以录播课形式讲解课程所涉及的知识点和整体流程,每节课都有相关的PPT和源码资料,并用通俗易懂的方式讲解课程。适合人群 有一定的C++基础和Android开发经验。
如何通过MediaCodec来进行视频解码后再编码
最近有一个需求是对mp4的<em>视频</em>文件进行解码,之后对图片做处理,做完处理之后再<em>编码</em>成mp4的文件。调查了一下,发现Android API 21之后就支持MediaCodec了,所以先做了一个测试就是先把mp4解码,之后再<em>编码</em>成新的mp4。调试过程中因为Surface的问题,导致查了很久。        具体实现参考了http://www.bigflake.com/<em>mediacodec</em>/里面所说的例
android使用mediacodec编码后的bytebuffer如何传输?
如题,使用android自带的<em>mediacodec</em><em>编码</em>后的bytebuffer对象如何通过网络发送走,发送时,网络发送速度比编解码慢。rnlogcat会报rnrn09-25 13:56:48.935: E/VideoRecv(3014): decodeRingBuffer set is faster then get!rnrn网上有编解码事实,没有传输到另一边去解码的实例,哪位大神提供一点编解码传输资料,感谢!rn
Android MediaCodec YV12转YUV420 编码后花屏、四重影
摄像头预览的图片格式设置YV12,<em>编码</em>成H264时要转成YUV420的,<em>编码</em>完成后再解码播放,就有花屏、重影的现象,现在不知道是什么原因了,求助!!!!rn图标左侧是预览的,没有问题,右侧是经过<em>编码</em>、解码后的rn[img=https://img-bbs.csdn.net/upload/201501/21/1421821513_611921.jpg][/img]rnrn设置图片预览格式rnparameters.setPictureFormat(ImageFormat.YV12);rnrn<em>编码</em>rn // add h264 file for testrn public int encode(byte[] input, byte[] output, RandomAccessFile raf)rn int pos = 0; rn swapYV12toI420(input, yuv420, width, height);rn// yuv420 = swapYV12toI420(input, width, height);rn try rn ByteBuffer[] inputBuffers = mediaencodec.getInputBuffers(); rn ByteBuffer[] outputBuffers = mediaencodec.getOutputBuffers(); rn int inputBufferIndex = mediaencodec.dequeueInputBuffer(-1); rn //Log.i("EncodeAndDecode", "encode inputBufferIndex= "+inputBufferIndex);rn ++einputcount;rn Log.i("EncodeAndDecode", "encode inputcount= "+einputcount+" input size="+yuv420.length);rn if (inputBufferIndex >= 0) rn rn ByteBuffer inputBuffer = inputBuffers[inputBufferIndex]; rn inputBuffer.clear(); rn inputBuffer.put(yuv420); rn mediaencodec.queueInputBuffer(inputBufferIndex, 0, yuv420.length, 0, 0); rn rn rn MediaCodec.BufferInfo bufferInfo = new MediaCodec.BufferInfo(); rn int outputBufferIndex = mediaencodec.dequeueOutputBuffer(bufferInfo,0); rn //Log.i("EncodeAndDecode", "encode outputBufferIndex= "+outputBufferIndex);rnrn // add h264 file for testrn// raf.write(new byte[]0x00,0x00,0x00,0x01);rn while (outputBufferIndex >= 0) rn rn ByteBuffer outputBuffer = outputBuffers[outputBufferIndex]; rn byte[] outData = new byte[bufferInfo.size]; rn outputBuffer.get(outData); rn ++eoutputcount;rn Log.i("EncodeAndDecode", "encode outputcount= "+eoutputcount+" outData size="+outData.length); rn rn // add h264 file for testrn// raf.write(outData);rn rn decode(outData);rn mediaencodec.releaseOutputBuffer(outputBufferIndex, false); rn outputBufferIndex = mediaencodec.dequeueOutputBuffer(bufferInfo, 0); rn rn rn catch (Throwable t) rn t.printStackTrace(); rn rn rn return pos; rn rn rnrn格式转换rn private void swapYV12toI420(byte[] yv12bytes, byte[] i420bytes, int width, int height) rn rn System.arraycopy(yv12bytes, 0, i420bytes, 0, width*height); rn System.arraycopy(yv12bytes, width*height+width*height/4, i420bytes, width*height, width*height/4); rn System.arraycopy(yv12bytes, width*height, i420bytes, width*height+width*height/4, width*height/4); rn rn
java_rtp 实现视频播放与保存
java_rtp 实现<em>视频</em>播放与<em>保存</em>,实现<em>视频</em>,音频播放与<em>保存</em>,及回放
视频播放网站,播放完视频后从本地删除视频
这是一个<em>视频</em>播放网站,播放<em>视频</em>不用说,但是需求上提出,在播放玩<em>视频</em>之后再客户端不能留存播放过的<em>视频</em>,无奈了,有哪位高人做过类似的请赐教
Mediacodec编码Camera摄像头数据技术要点总结
问题一: Camera采集<em>视频</em>是默认手机为横屏,所以采集到的数据在手机为竖屏时并不能正确显示(旋转了90度)。在Camera预览时可以调用以下函数:Camera.setDisplayOrientation(90)使预览画面正常显示,但并不改变本身采集到的数据,所以,数据还是横屏状态的。问题二: Camera采集数据的默认数据格式是NV21,可以设置为其它的,常用的还有YV12,这里只说NV21,而使
Android采集摄像头图像--MediaCodec编码
支持从摄像头采集图像,并用MediaCodec API进行硬<em>编码</em>,<em>编码</em>后的数据<em>保存</em>到一个H264文件。这个例子也支持软<em>编码</em>,使用的是FFmpeg。
隐藏视频播放的视频地址
如题。WEB<em>视频</em>播放怎么隐藏<em>视频</em>真实地址 rn
视频盘的视频播放问题
rn 我用WebEx录制了一些<em>视频</em>,制作成了光盘镜像.iso,用虚拟光驱,在装有WebEx播放器的电脑上能播放,没装的电脑就不能播放了!rn怎么样才能让光盘在没有装WebEx播放器的电脑上也能播放,或者说在DVD机能直接播放,再电视上可以观看。
网页视频视频播放慢
今天使用websocket看<em>视频</em>,遇到一个特别奇怪的现象,服务器在别的电脑,<em>视频</em>越播越慢。服务器在自己电脑,<em>视频</em>播放正常。很是不解。通过ping包,延迟1毫秒,说明网络时没有问题的。在通过抓包,发现问题了:现象如下:服务端通过websocket 每次发送9包之后,会等待一会,等待ack包之后再发送下面的数据。但是我的ack包是13包才会回复一包,要么200毫秒超时再发送数据。应为9包过来之后,没有...
视频播放AVPlayerViewController之'启动视频'
<em>视频</em>播放之一 AVPlayerViewController 在iOS8中,iOS开发框架中引入了一个新的<em>视频</em>框架AVKit,其中提供了<em>视频</em>开发类AVPlayerViewController用于在应用中嵌入播放<em>视频</em>的控件。 iOS9系统后,iPad Air正式开始支持多任务与画中画的分屏功能,所谓画中画,即是用户可以将当前播放的<em>视频</em>缩小放在屏幕上同时进行其他应用程序的使用。 这个革命性的功能将...
视频播放页——视频播放组件
剔除繁杂的理论,注重实践,循序渐进的介绍资讯类<em>视频</em>应用的实现
获取当前视频播放时间
基于tpshop的<em>视频</em>播放页面修改了写了一点原声js获取<em>时间</em>的代码&amp;lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&amp;gt; &amp;lt;html xmlns=&quot;http://www.w3.org/1999/...
asp.net 视频播放 监控时间
可以播放各种格式的<em>视频</em>文件,已经监控到<em>视频</em>的播放<em>时间</em>,和ppt同步等功能
视频播放和视频抽帧
求教该如何在MFC框架下实现,<em>视频</em>文件读取和<em>视频</em>抽帧功能?
视频列表和视频播放
《Android项目实战之我的云音乐》这门课程是我们为Android软件工程师打造的一门项目实战课程,目的是从零开发一个完整的音乐软件,让大家能从中学习到真正的知识,成为行业的高端人才,拥有更好的人生规划。
控制视频播放开始时间
如何控制<em>视频</em>播放的开始<em>时间</em>,也就是说我指定开始播放的<em>时间</em>而不是从头开始播放,rnrn播放器是:media player
OpenGL ES短视频开发(MediaCodec编码)
这一章节进行<em>视频</em>录制,选用MediaCodec, ffmpeg软编效率比较低,这里采用MediaCodec进行<em>编码</em>。 MediaCodec MediaCodec是Android 4.1.2(API 16)提供的一套编解码API。它的使用非常简单,它存在一个输入缓冲区与一个输出缓冲区,在<em>编码</em>时我们将数据塞入输入缓冲区,然后从输出缓冲区取出<em>编码</em>完成后的数据就可以了。 除了直接操作输入缓冲区之外,还有...
获取的网络时间不正确
[code=C/C++]rnCSocket sockClient;rn sockClient.Create(); //创建socketrn rn rn CString strServer="time.ien.it";rn sockClient.Connect((LPCTSTR)strServer, 37); // strServer:<em>时间</em>服务器网址; 37:端口号rn rn DWORD dwTime = 0; //用来存放服务器传来的标准<em>时间</em>数据rn unsigned char nTime[8]; //临时接收数据rn// memset(nTime, 0, sizeof(nTime));rn rn sockClient.Receive(nTime, sizeof(nTime)); //接收服务器发送来得4个字节的数据rn sockClient.Close(); //关闭socketrn rn rn rn dwTime += nTime[0] << 24; //整合数据 rn dwTime += nTime[1] << 16;rn dwTime += nTime[2] << 8;rn dwTime += nTime[3]; rn rn if(0 == dwTime) return FALSE;rn rn rn rn //服务器传来的数据是自从1900年以来的秒数rn //取得 1900~1970 的<em>时间</em>差(以秒数计算) ,放在dwSpan里面rn COleDateTime t00( 1900, 1, 1, 0, 0, 0 ); // 1900.1.1 00:00:00 rn COleDateTime t70( 1970, 1, 1, 0, 0, 0 ); // 1970.1.1 00:00:00 rn rn COleDateTimeSpan ts70to00 = t70 - t00; rn DWORD dwSpan = (DWORD)ts70to00.GetTotalSeconds(); rn ASSERT( dwSpan == 2208988800L ); rn rn //把<em>时间</em>变为基于1970年的,便于用CTime处理rn dwTime -= dwSpan; rn //考虑网络延迟因素rn dwTime += dwDely;rn //构造当前<em>时间</em>的CTime对象rn CTime timeNow = (CTime)dwTime;rn rn rn rn *pTime = timeNow;rn[/code]rnrnrn得到的是1981年8月30日的
为什么获取的时间不正确
SYSTEMTIME ti;rn CString str;rn GetSystemTime(&ti);rn str.Format("%02d:%02d:%02d:%03d",(ti.wHour),ti.wMinute,ti.wSecond,ti.wMilliseconds);rn MessageBox(str,"",0);rn 用这个获取<em>时间</em>,为什么16点获得的 ti.wHour 是8。
android使用自带MediaCodec录视频原理
android MediaCodec录<em>视频</em>原理 简介 使用android自带的sdk完成<em>视频</em>录制需要用到MediaCodec、AudioRecord、MediaMuxerd等api,sdk使用的是硬<em>编码</em>,理论上说速度是较快的,但是各个厂商内部实现原理不一样,肯能并不如ffmepeg软<em>编码</em> MediaCodec 可以实现音<em>视频</em>的编解码 AudioRecord 录音api,输出的是音频裸流 Medi...
Android 用MediaCodec实现视频硬解码
http://blog.csdn.net/halleyzhang3/article/details/11473961 http://www.360doc.com/content/14/0119/10/8122810_346350456.shtml   Android 用MediaCodec实现<em>视频</em>硬解码 本文向你讲述如何用android标准的API (MediaCodec)实现视...
计算机时间不正确
环境 :XP professional 英文版rnrn状况: 当天使用电脑的时候一切正常,关机再开机后、拔掉电源后重新接上电源<em>时间</em>都正确,但放置一夜后第二天启动的时候<em>时间</em>就<em>不正确</em>了,有时候慢一两个小时,现在慢了两天,这种状况有一个星期了rnrnCMOS电池有电,其中的设置都能<em>保存</em>,rnrn为啥呢 ?
Android使用MediaCodec解码H264视频解码器
前些日子有写了一篇博客[Android使用MediaCodec硬解码播放H264格式<em>视频</em>文件](http://blog.csdn.net/true100/article/details/53992939)。 有些朋友加我好友让告诉下解码的相关代码,我今天就贴出来了。今天是农历2016年上班最后一天,明年继续写博客, 和朋友们一起学习,一起进步。提前祝所有朋友春节愉快! public class
使用MediaCodec解码使用SurfaceView显示视频
From https://www.cnblogs.com/CoderTian/p/6221944.html 1.MainActivity.java import android.app.Activity; import android.os.Bundle; import android.os.Environment; import android.view.SurfaceH...
xvid编码后如何保存成mp4?
[code=c] void *pInStream, *pOutStream;rn int iInLength, iCSP, iStride;rn xvid_enc_stats_t *xvid_enc_stats;rn xvid_enc_frame_t xvid_enc_frame; //<em>编码</em>参数rn memset(&xvid_enc_frame,0,sizeof(xvid_enc_frame_t));rn xvid_enc_frame.version = XVID_VERSION; //设置<em>编码</em>器版本rn xvid_enc_frame.bitstream = pOutStream; //设置输出缓冲区地址rn xvid_enc_frame.length = iInLength; //输出数据长度,<em>编码</em>前设为-1rn xvid_enc_frame.input.csp = iCSP; //输入色场空间rn xvid_enc_frame.input.plane[0] = pInStream; //输入缓冲区地址rn xvid_enc_frame.input.stride[0] = iStride; //步长,即一行像素字节数rnrn memset(xvid_enc_stats,0,sizeof(xvid_enc_stats_t));rn xvid_enc_stats->version = XVID_VERSION;rnrn xvid_encore(m_pEncHandle,XVID_ENC_ENCODE,&xvid_enc_frame,xvid_enc_stats); //开始<em>编码</em>[/code]rn<em>编码</em>后的数据在pOutStream中,如何将<em>编码</em>后的数据写入新建的mp4?rn是不是需要写一些mp4的信息,然后再存入?
数据库保存时间保存
<em>时间</em>戳: String CREATED = Integer.parseInt(this.getTimestamp()) FROM_UNIXTIME(CREATED,'%Y-%m-%d %h:%i:%s') AS CREATED, //将<em>时间</em>戳转换为%Y-%m-%d %h:%i:%s格式的<em>时间</em><em>保存</em> FROM_UNIXTIME(MODIFIED,'%Y-%m-%d %h:%i:%s') AS...
VLC播放m3u8文件,视频播放进度不正确
[img=http://img.my.csdn.net/uploads/201301/22/1358845866_3425.jpg][/img]rn我在使用vlc播放m3u8文件的时候,设置去复用 为avformat去复用器。 但是播放的进度<em>不正确</em>。rnrn请教大家如何解决此问题!
IJKPlayer使用MediaCodec解码和渲染视频过程分析
IJKMediaCodec 解码分析1.func_run_sync(IJKFF_Pipenode *node) /ffpipenode_android_<em>mediacodec</em>_vdec.c —-drain_output_buffer(env, node, timeUs, &dequeue_count, frame, &got_frame); —-dra
Android 使用MediaCodec实现视频的无缝切换
Android 使用MediaCodec实现<em>视频</em>的无缝切换一、功能说明:在不同控件之间实现<em>视频</em>的无缝切换。不会黑屏,也不需要重新创建解码器。百度上面很多<em>视频</em>播放都是利用MediaPlayer+显示视图(SurfaceView、TextureView)进行本地或者网络<em>视频</em>的播放。那么利用MediaCodec对<em>视频</em>流进行硬解码的小伙伴该如何在不同的控件之间无缝切换呢?是不是TextureView的生命周
MediaCodec对本地视频进行压缩
本来想用FFMPEG,但是考虑到加了so文件后 apk包会大很多,而且用的功能也很少。rn因此考虑了使用 Android本身提供的实现方法。rnrn看了许多贴子和代码。rn[url=http://www.jianshu.com/p/30e596112015][/url]rn[url=http://www.jianshu.com/p/e6c683d6dbbe][/url]rn[url=http://blog.csdn.net/bit_kaki/article/details/52105733][/url]rn等等。rn但是 写出来的及找到的demo,要么这有问题要么那有问题,兼容及功能上都或多或少有那么些问题。rnrn有么有比较好的的demo及文档 ,知道的大神说下嘛[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/monkey/2.gif][/img][img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/monkey/2.gif][/img]
如何得到视频的播放时间以及视频播放中的托拉效果?
rn 现在正在做项目,然后项目要实现的功能是要类似于 土豆 <em>视频</em>播放前出现的在播放器中的广告,rnrn 而我们的是要在特定的<em>时间</em>内出现那样的广告,这样就要得到<em>视频</em>播放的<em>时间</em>。。。rnrn 还有就是,<em>视频</em>可以来回拖动的。。。。。rnrn 请问用JAVA该如何实现呢·~~?还是,是使用flex实现吗?rn rnrn 多谢帮忙啊~~~rn
哈夫曼编码,最后的编码结果不正确
#includern#includern#define N 20rn#define M 2*N-1 rntypedef struct nodernrn int weight;rn int parent;rn int lchild;rn int rchild;rnhuffmanbitree[M+1];rnvoid select(huffmanbitree ht,int i,int *s1,int *s2)rnrn int j;rn long min1=99999;rn long min2=99999;rn for(j=1;jht[j].weight)rn rn min1=ht[j].weight;rn *s1=j;rn rn rn rn for(j=1;jht[j].weight&&j!=*s1)rn rn min2=ht[j].weight;rn *s2=j;rn rn rn rnrnvoid creat(huffmanbitree ht,int w[],int n)rnrn int i,m=2*n-1,s1,s2;rn for(i=1;i,&w[i]);rn creat(ht,w,n);rn print(ht,2*n-1);rn printhuff(ht,n);rn[img=https://img-bbs.csdn.net/upload/201905/17/1558067240_872258.png][/img]
html 视频播放,视频封面,视频加载
1、先上图       2、 上代码 &amp;lt;div class=&quot;base-wrap word-break&quot; style=&quot;padding:0 0 50px;&quot;&amp;gt; &amp;lt;!--顶部--&amp;gt; &amp;lt;!--精彩交友话题--&amp;gt; &amp;lt;!--广告--&amp;gt; &amp;lt;div class=&quot;ad-rent&quot; &amp
Java利用FFmpeg解析视频,截图,获取视频播放时间
工程已经打包,很详细的描述,所有工具都已打包好,这里主要是做了<em>视频</em>截图,<em>视频</em>播放时长的获取,其他的内容如果要获取自己可以重新添加命令获取。
不是时间太快,而是我太“飘”~~~
       <em>时间</em><em>太快</em>,而我太“飘”了!        转瞬即逝的大学三年,就那么浑浑噩噩,迷迷糊糊的过来了。当我无聊的刷着微博,看那些我所熟知的,我所热爱的那些英雄联盟的职业选手,一个又一个的面临转会的时候,我的未来又该何去何从。他们所得到的似乎都是前程似锦,而我呢,浪费了这么多的<em>时间</em>,然而依旧是碌碌无为,直到此时我才发现不是<em>时间</em><em>太快</em>,而是我太“飘”!!!        游戏这两个字眼,对于...
MediaCodec视频硬解码-检测视频是否可以被硬解
FFmpeg+OpenGL ES+OpenSL ES打造Android<em>视频</em>播放器教程,该课程基于C++语言,用FFmpeg、OpenGL ES、OpenSL ES和MediaCodec打造Android<em>视频</em>播放器。以录播课形式讲解课程所涉及的知识点和整体流程,每节课都有相关的PPT和源码资料,并用通俗易懂的方式讲解课程。适合人群 有一定的C++基础和Android开发经验。
flv视频播放源码(包含视频
flv<em>视频</em>播放源码,需要的参考(html的,可按需要修改)
刘老师视频源码Android之视频播放
本代码是CSDN认证讲师刘老师<em>视频</em>源码Android之<em>视频</em>播放
视频播放 本地视频 网络视频通用
<em>视频</em>播放 本地<em>视频</em> 网络<em>视频</em>通用
python对视频画框标记后保存
需要画框取消注释rectangle import cv2 import os,sys,shutil import numpy as np # Open the input movie file, input the filepath as input_filepath = sys.argv[1] input_movie = cv2.VideoCapture(input_filepath) l...
如何记录网页视频播放的时间
现在有很多在线培训的网站,如中小学校长培训系统,在用户登录网站后,点播课程,打开<em>视频</em>,当用户退出的时候,网站上会记录,这个课程播放在什么<em>时间</em>了,下次打继续播放,这是如何实现的啊,给说说原理也行啊。
为什么视频播放时间大大缩水?
一个30分钟的<em>视频</em>,mpg格式,在本地播放一切正常,可是通过网页链接用media player直接观看时播放<em>时间</em>往往大打折扣,只有7分钟播放<em>时间</em>,而下载下来看又一切正常。搞不清楚,这应该和media player 有关系吧,可是我试了其他播放软件,如果直接观看也是播放<em>时间</em>缩水,所以只有把问题贴到这里来了。rn
获取视频播放时间长度问题
[code=C/C++]rnCWMPPlayer4 m_sto;rnm_sto.SetUrl("d:\\test.avi");rn//然后启动一个线程rnCString msg;rnCWMPMedia PL;rnSleep(3000);//必须等一段<em>时间</em>后才能取得正确的<em>时间</em>长度,也就是<em>视频</em>开始播放后rnmsg=m_sto.GetStatus();//取得当前的状态rnwhile(msg!="正在播放")//如果不是正在播放,则继续取rnrn msg=m_sto.GetStatus();rnrnmsg=PL.GetDurationString();//取得当前的播放<em>时间</em>长度rnAfxMessageBox(msg);rn[/code]rn大家有没有好的办法,取得<em>视频</em>的播放时长无需等待啊?
视频纹理(ffmpeg)实现视频播放
课程涵盖了OpenGL开发的方方面面,对开发中经常用到的开发知识点进行讲解,从实战的角度进行<em>编码</em>设计.rn第1章-环境建立rn第2章-基础图元rn第3章-三维世界rn第4章-纹理多彩世界rn第5章-显存的分配-优化rn第6章-场景控制rn第7章-光照-真实世界rn第8章-模型rn第9章-UI制作rn第10章-场景编辑器制作rn第11章-地形rn第12章-脚本引入-lua
opencv视频保存后如何修改帧率?
我想用opencv录制<em>视频</em>,但是<em>视频</em>录制开始不知道帧率具体多少,所以随便设置了。在<em>视频</em>录制结束,我用<em>视频</em><em>时间</em>和总帧数能计算出实际帧率,但是这个帧率怎么设置在<em>视频</em>中呢?rn[code=c]CvVideoWriter* writer = cvCreateVideoWriter(m_strFileName, CV_FOURCC('M','J','P','G'), 30.0, size);rndouble dFps = m_iFrameCount / m_lVideoTotalTime/1000.f);rn// cvSetCaptureProperty(); ///这个函数能实现吗?感觉不行,而且不能用CvVideoWriter作为参数rncvReleaseVideoWriter(&writer);rn[/code]
后台检测客户端视频播放时间
大家好,我现在在做一个有关<em>视频</em>的web项目, rn想知道后台能监测客户端<em>视频</em>播放<em>时间</em>, rn不知道怎么做好,谢谢大家回答
MediaCodec解码
试试ANDOIRD <em>mediacodec</em>硬解码
视频时间裁剪视频时间裁剪视频时间裁剪视频时间裁剪
<em>视频</em><em>时间</em>裁剪<em>视频</em><em>时间</em>裁剪<em>视频</em><em>时间</em>裁剪<em>视频</em><em>时间</em>裁剪<em>视频</em><em>时间</em>裁剪<em>视频</em><em>时间</em>裁剪<em>视频</em><em>时间</em>裁剪
ffmpeg编码视频速度不正确,质量也不好,求助,求助,求助,求助啊
对采集到得摄像头图像进行<em>编码</em><em>保存</em>,发现得到的<em>视频</em>质量不好,而且速度不对。下面是关键代码。高手们看看,问:rn1.<em>编码</em>器和AVPacket的pts设置对不对?rn2.AVPacket的dts要设置吗?设为多少?rn3.<em>编码</em>质量不好可不可以通过设置pStream->quality = m_nQuality调节?rn下面是小弟做的:rn首先,<em>编码</em>器类型是通过文件格式guess得到;rn其次,下面是初始化AVStream<em>编码</em>器的函数:rnAVStream *pStream = av_new_stream(pFormatContext, 0); rn if( NULL == pStream ) rn return NULL; rn AVCodecContext *pCodecContext = pStream->codec; rn rn pCodecContext->codec_id = (CodecID)codec_id; //guess得到rn pCodecContext->codec_type = CODEC_TYPE_VIDEO; rn pCodecContext->bit_rate = (int)m_fBitRate; //固定设置为了1000000rn pCodecContext->width = m_nWidth; //图像宽度:我这里是2048rn pCodecContext->height = m_nHeight; //图像高度:我这里是1356rn pCodecContext->time_base.den = 30; //这个不懂怎么设置,设为25或30以外的任何数值都rn //会导致avcodec_open()调用失败,我就只好这么设置了rn pCodecContext->time_base.num = 1; //以下设置都是参考的out_example.crn pCodecContext->gop_size = 12; rn pCodecContext->pix_fmt = PIX_FMT_YUV420P; rn rn if (pCodecContext->codec_id == CODEC_ID_MPEG2VIDEO) rn pCodecContext->max_b_frames = 2; rn rn if (pCodecContext->codec_id == CODEC_ID_MPEG1VIDEO) rn pCodecContext->mb_decision=2; rn rn rn if(!strcmp(pFormatContext->oformat->name, "mp4") || !strcmp(pFormatContext->oformat->name, "mov") || rn !strcmp(pFormatContext->oformat->name, "3gp")) rn pCodecContext->flags |= CODEC_FLAG_GLOBAL_HEADER; rn return pStream; rnrn然后我进行了<em>编码</em><em>保存</em>,其实也是参考out_example.c,只是速度老不对,自己改写了pts,dts实在不知道怎么填:rnif (pFormatcontext->oformat->flags & AVFMT_RAWPICTURE) rn /* raw video case. The API will change slightly in the nearrn futur for that */rn AVPacket pkt;rn av_init_packet(&pkt);rnrn pkt.flags |= PKT_FLAG_KEY;rn pkt.stream_index= pVideoStream->index;rn pkt.data= (uint8_t *)m_pYUVFrame;rn pkt.size= sizeof(AVPicture);rnrn ret = av_write_frame(pFormatcontext, &pkt);rn rn elsern int out_size = avcodec_encode_video(pCodecContext, m_pOutBuf, m_nOutBufSize, m_pYUVFrame); rn if (out_size > 0) rn AVPacket pkt; rn av_init_packet(&pkt); rn //pkt.pts = av_rescale_q(pCodecContext->coded_frame->pts, pCodecContext->time_base,pVideoStream->time_base);//原来是这样的rnpkt.pts = currTickCount - startTickCount;//我记录了每一帧来的<em>时间</em>和第一帧<em>时间</em>,将这个差值作为pts,rn //不知道这样有什么问题吗?rn if( pCodecContext->coded_frame->key_frame ) rn pkt.flags |= PKT_FLAG_KEY; rn rn pkt.stream_index = pVideoStream->index; rn pkt.data= m_pOutBuf; rn pkt.size= out_size; rn rn ret = av_write_frame(pFormatcontext, &pkt); rn else rn ret = 0; rn rn rn
Android MediaCodec
使用MediaCodec播放文件,PES转为ES流注入MediaCodec解码渲染,通过surfaceview显示出来
mediacodec c++.
实现在Android4.1以上的系统直接在jni c++ 使用MediaCodec,无需Android5.0以上。 提供了C++代码加载so库并动态导出符号的方法
Regex.Split分割后,不正确
[code=C#]rnrn// TextBox1.Text的内容如下rn// aaaaaaaaaaabbbbbbbbbbbccccccccrnrnstring body = TextBox1.Text;rnstring[] bodys = Regex.Split(body, @"]*?)/>", RegexOptions.IgnoreCase);rnfor (int i = 0; i < bodys.Length; i++)rn rn Response.Write(bodys[i] + " ");rnrn[/code]rnrnrn分割后,按理是3个段,为什么成为 6个段呢?
MediaCodec学习
最简单的学习MediaCodec解码<em>视频</em>的demo。
MediaCodec NDK
ffmpeg MediaCodec NDK SurfaceTexture 因为Demo中大部分是工程的代码,不便上传。只提供核心代码。
jqgrid显示时间的格式不正确
使用jqgrid表格,使用的是json数据,从后台服务器springmvc拿到 <em>时间</em>数据时,没有自动转换格式,依旧是unix<em>时间</em>,毫秒数。  方法一:自己创建一个解析类 1.自己新建一个类来解析date类型数据 import java.io.IOException; import java.text.SimpleDateFormat; import com.fasterxml.j...
时间过长抓RGB不正确
我是菜鸟....我写的程序一开始好好的,然后开了1 2个小时就出问题了,抓取的RGB全错了,没有提示,我把程序关了,再开就又好了。rnrn我程序里很多FOR循环,很多keybd_event,一运行程序的窗口就处于忙碌状态(就是把鼠标放到窗口上显示沙漏形状)rnrn如何解决问题?
docker下启动jar包时间不正确
一,未修改参数前   二,修改参数后   三,解决方法,修改启动方式(启动指定时区-Duser.timezone=GMT+08) ENTRYPOINT [&quot;java&quot;,&quot;-jar&quot;,&quot;-Duser.timezone=GMT+08&quot;,&quot;/eureka-zuul/eureka-zull-0.0.1-SNAPSHOT.jar&quot;] ...
页面显示时间,关闭页面后怎么保存显示的时间
如果显示,再打开这个页面的时候显示<em>保存</em>的<em>时间</em>!
MediaCodec seekto()后解码播放视频,花屏?
通过 mVideoMediaExtractor.seekTo(mStartTimeStamp, MediaExtractor.SEEK_TO_CLOSEST_SYNC); 之后解码通过SurfaceTexture播放<em>视频</em>,有些时候花屏,如下是本人解决方法: mVideoMediaExtractor.seekTo(mStartTimeStamp, MediaExtractor.SEEK_
mediacodec实例代码
android <em>mediacodec</em>实例代码
MediaCodec编解码
摄像头采集<em>视频</em>,通过MediaCodec编解码,SurfaceView显示
数据库查询时间时间格式显示不正确
insert into table(sampletime,AT,HT,Htime,LT,ltime)values(#%s#,'%.2f','%.2f','%s',%.2f,'%s')",SampleTime,Tavg,Tmax,MaxShowTime,Tmin,MinShowTime);rn插入数据库是这么写的,但是查询的时候,结果在视图类中显示(gridview控件),查询记录的时候,像2011-08-14 00:00,显示的是2011-08-14 ,后面的没有了。这是怎么回事?
MongoDB 存储时间信息不正确
我在C#中 写的是 CreateTime=DateTime.Now;rnrn现在<em>时间</em>是2015/1/12 11:18:36rnrn存到数据库中 就变成 2015/1/12 3:18:38 这是啥情况
GetDirectoryInfo的CreationTime显示时间不正确
pinkongwenjianjia数组里的文件夹是2018-10-27创建的rn但是使用 My.Computer.FileSystem.GetDirectoryInfo(pinkongwenjianjia(i)).CreationTimern显示的<em>时间</em>却是1601/1/1 8:00:00rn为什么rn
huffman编码及其保存
实现huffman的<em>编码</em>和文件<em>保存</em>功能 主要为:从文件读入一度字符,并进行统计,按其概率进行<em>编码</em>
不同编码保存的文件
好像不能设置成为0分数,如果有需要但是没有积分的同学请留下邮箱我会发送到你的邮箱里
条形码编码及结果保存
对输入数据进行<em>编码</em>形成条形码,并将结果<em>保存</em>为程序目录下的jpg图片,可以选择是否显示原数据及<em>编码</em>颜色。<em>编码</em>代码参考:http://download.csdn.net/detail/yindongbest/3729966
Cookie保存中文 编码
@RequestMapping("/test4") public void test4(@RequestParam("name") String username,HttpServletResponse response) throws Exception{//<em>保存</em>Cookie     //首先将浏览器传下来的数据转换成中文(还原)。     username = new String(u
十万火急:direct3D中加入视频动画后,窗口显示不正确
在DirectSDK的例子DolphinVS中加入<em>视频</em>动画后,我想用setRenderWindow命令将<em>视频</em>播放窗口映射到当前窗口,可结果不对,DolphinVS的窗口和<em>视频</em>播放窗口是独立的两个,而不是一个?请高手赐教,怎么样能在一个窗口中播放!
客户端连接服务器端后sysdate时间不正确的处理
一、环境信息介绍业务类型:某地级市社保数据库操作系统:aix 7.2数据库版本: 11.2.0.4数据库架构:Rac R2数据文件存储:ASM二、故障描述开发人员使用sql developer连接数据库查询sysdate<em>时间</em>与北京<em>时间</em>出现几小时的时差,系统工程师只修改了系统<em>时间</em>和时区。三、修改过程(只记录解决问题流程,省略输出结果)1.修改服务器系统<em>时间</em>#echo $TZ        (⚠️如果...
视频网络编码
网络<em>视频</em>编解码,很实用的网络<em>视频</em>代码,很拿的,很好用
视频分割-不编码
Boilsoft Video Splitter v5.21 直接流剪切,不必重新<em>编码</em>。非常强大的<em>视频</em>剪切利器。不过有可能需要下载解码器的支持。无损剪切。
X264编码H264视频
通过V4l2 接口获取摄像头YUV数据,再将该数据使用X264<em>编码</em>成h264<em>视频</em>。详细内容请见博客http://blog.csdn.net/li_wen01/article/details/53572642
软工视频—程序编码
前言 软件工程进行完设计阶段,就进入程序<em>编码</em>阶段了。程序<em>编码</em>的好坏直接影响到软件的质量与后续维护,以及软件开发的进度,所以在<em>编码</em>的时候也是需要注意好多地方的。我认为整个<em>编码</em>阶段可以分为三个部分,下面是我的导图: <em>编码</em>前 <em>编码</em>前首先要选择程序语言,可以根据三方面来选择。第一,根据需求 or 条件,比如:应用领域、用户需求、运行环境的限制等;第二,根据<em>编码</em>人员,比如:编程者对语言的熟悉程...
android平台ffmpeg编码之后的视频播放绿屏
在android平台下,使用第三方库ffmpeg进行<em>编码</em>,之后播放<em>编码</em>的<em>视频</em>,绿屏了rnrnjavarncamera.setPreviewCallback(new PreviewCallback()rn rnrn @Overridern public void onPreviewFrame(byte[] arg0, Camera arg1) rn // TODO Auto-generated method stubrn if(mIsStartPre == true)rn rn videostart(arg0);rn rn rn rn );rn对每一帧数据都进行<em>编码</em>rnrnJNI接口:rn三个接口,一个初始化接口,一个<em>编码</em>接口,一个结束释放接口rnrnAVCodecContext *pCodecCtx= NULL; rnAVPacket avpkt; rnFILE * video_file; rnunsigned char *outbuf=NULL; rnunsigned char *yuv420buf=NULL;rnAVFrame * yuv420pframe = NULL; rnstatic int outsize=0; rnstatic int mwidth = 480;rnstatic int mheight = 272;rnint count = 0;rn/* rn* encording init rn*/ rnJNIEXPORT jint JNICALL Java_com_hua_cameraandroidtest_MainActivity_videoinit(JNIEnv * env, jclass obj,jbyteArray filename) rn rn LOGI("%s\n",__func__); rn AVCodec * pCodec=NULL; rn avcodec_register_all(); rn pCodec=avcodec_find_encoder(AV_CODEC_ID_MPEG4); //AV_CODEC_ID_H264//AV_CODEC_ID_MPEG1VIDEOrn if(pCodec == NULL) rn LOGE("++++++++++++codec not found\n"); rn return -1; rn rn pCodecCtx=avcodec_alloc_context3(pCodec); rn if (pCodecCtx == NULL) rn LOGE("++++++Could not allocate video codec context\n"); rn return -1; rn rn /* put sample parameters */ rn pCodecCtx->bit_rate = 400000; rn /* resolution must be a multiple of two */ rn pCodecCtx->width = mwidth; rn pCodecCtx->height = mheight; rn /* frames per second */ rn pCodecCtx->time_base= (AVRational)1,25; rn pCodecCtx->gop_size = 10; /* emit one intra frame every ten frames */ rn pCodecCtx->max_b_frames=1; rn pCodecCtx->pix_fmt = AV_PIX_FMT_YUV420P;//AV_PIX_FMT_YUYV422; rn /* open it */ rn if (avcodec_open2(pCodecCtx, pCodec, NULL) < 0) rn LOGE("+++++++Could not open codec\n"); rn return -1; rn rn outsize = mwidth * mheight*2; rn outbuf = malloc(outsize*sizeof(char)); rn yuv420buf = malloc(outsize*sizeof(char)); rn jbyte *filedir = (jbyte*)(*env)->GetByteArrayElements(env, filename, 0); rn if ((video_file = fopen(filedir, "wb")) == NULL) rn LOGE("++++++++++++open %s failed\n",filedir); rn return -1; rn rn (*env)->ReleaseByteArrayElements(env, filename, filedir, 0); rn return 1; rn rn rnJNIEXPORT jint JNICALL Java_com_hua_cameraandroidtest_MainActivity_videostart(JNIEnv * env, jclass obj,jbyteArray yuvdata) rn rn int frameFinished=0,size=0;rn LOGE("JNICALL Java_com_hua_cameraandroidtest_MainActivity_videostart1"); rn jbyte *ydata = (jbyte*)(*env)->GetByteArrayElements(env, yuvdata, 0);rn LOGE("JNICALL Java_com_hua_cameraandroidtest_MainActivity_videostart2"); rn yuv420pframe=NULL; rn //AVFrame * yuv422frame=NULL; rn //struct SwsContext *swsctx = NULL;rn av_init_packet(&avpkt);rn avpkt.data = NULL; // packet data will be allocated by the encoderrn avpkt.size = 0; rn yuv420pframe=avcodec_alloc_frame(); rn //yuv422frame=avcodec_alloc_frame(); rn avpicture_fill((AVPicture *) yuv420pframe, (uint8_t *)yuv420buf, AV_PIX_FMT_YUV420P,mwidth,mheight);rn yuv420pframe->pts = count; rnLOGE("JNICALL Java_com_hua_cameraandroidtest_MainActivity_videostart3"); rn //avpicture_fill((AVPicture *) yuv422frame, (uint8_t *)ydata, AV_PIX_FMT_YUYV422,mwidth,mheight);rnLOGE("JNICALL Java_com_hua_cameraandroidtest_MainActivity_videostart4"); rn //swsctx = sws_getContext(mwidth,mheight, AV_PIX_FMT_YUYV422, mwidth, mheight,AV_PIX_FMT_YUV420P, SWS_BICUBIC, NULL, NULL, NULL); rnLOGE("JNICALL Java_com_hua_cameraandroidtest_MainActivity_videostart5"); rn //sws_scale(swsctx,(const uint8_t* const*)yuv422frame->data,yuv422frame->linesize,0,mheight,yuv420pframe->data,yuv420pframe->linesize); rnLOGE("JNICALL Java_com_hua_cameraandroidtest_MainActivity_videostart6"); rnLOGE("JNICALL Java_com_hua_cameraandroidtest_MainActivity_videostart7"); rn size = avcodec_encode_video2(pCodecCtx, &avpkt, yuv420pframe, &frameFinished);rnLOGE("JNICALL Java_com_hua_cameraandroidtest_MainActivity_videostart8"); rncount++; rn if (size < 0) rn LOGE("+++++Error encoding frame\n"); rn return -1; rn rn if(frameFinished) rn fwrite(avpkt.data,1,avpkt.size,video_file);rnLOGE("JNICALL Java_com_hua_cameraandroidtest_MainActivity_videostart9"); rn av_free_packet(&avpkt); rn //sws_freeContext(swsctx); rn av_free(yuv420pframe); rn //av_free(yuv422frame); rn (*env)->ReleaseByteArrayElements(env, yuvdata, ydata, 0); rn rn rnJNIEXPORT jint JNICALL Java_com_hua_cameraandroidtest_MainActivity_videoclose(JNIEnv * env, jclass obj) rn rn fclose(video_file); rn avcodec_close(pCodecCtx); rn av_free(pCodecCtx);rn av_freep(&yuv420pframe->data[0]);rn av_frame_free(&yuv420pframe); rn free(outbuf); rnrn求大神分析一下,为什么会出现这样的情况。
VBS获取系统软硬件信息_i@isclab.org下载
'=================================== 'Desc:获取系统软硬件信息并写入INI文件 'Auth:shadu@foxmail.com 'Version:v1.0 'Update:2010-12-27 21:45 ' '修正磁盘大小的计算方法,Win32_DiskDrive,支持无分区,无盘符 '=================================== On Error Resume Next '''=================================================== ' PCPM 客户端硬件信息类 ''' 相关下载链接:[url=//download.csdn.net/download/ttm1984/2974828?utm_source=bbsseo]//download.csdn.net/download/ttm1984/2974828?utm_source=bbsseo[/url]
struts2+ibatis+spring整合开发下载
struts2+ibatis+spring整合开发实例 相关下载链接:[url=//download.csdn.net/download/dongzhumao86/3223965?utm_source=bbsseo]//download.csdn.net/download/dongzhumao86/3223965?utm_source=bbsseo[/url]
Java上机问题整理及解决下载
Java上机问题整理 常见于新学习者 可有效地避免上机中的问题 相关下载链接:[url=//download.csdn.net/download/jlm09876/3266631?utm_source=bbsseo]//download.csdn.net/download/jlm09876/3266631?utm_source=bbsseo[/url]
我们是很有底线的