org.bytedeco.javacv.FrameFilter Java Examples
The following examples show how to use
org.bytedeco.javacv.FrameFilter.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: RecorderActivity.java From VideoAndroid with Apache License 2.0 | 6 votes |
private void stopRecorder() { if(mRecorder == null || !mRecorder.isRecording()) { return; } if(mMyHandler.hasMessages(MSG_STOP)) { mMyHandler.removeMessages(MSG_STOP); } try { mRecorderCircleView.stop(); long recordingTime = mRecorder.getRecordingTime(); mRecorder.stop(); if(recordingTime < MIN_RECORDER_TIME) { //少于最少录制时间 Toast.makeText(getApplicationContext(), "录制时间至少" + MIN_RECORDER_TIME / 1000 + "s", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(getApplicationContext(), "录制完成", Toast.LENGTH_SHORT).show(); startActivity(RecoderPlayerActivity.createIntent(this, mRecorder.getOutputPath())); finish(); } } catch (FrameRecorder.Exception|FrameFilter.Exception e) { e.printStackTrace(); } }
Example #2
Source File: Recorder.java From VideoAndroid with Apache License 2.0 | 6 votes |
/** * 开始录制 * @throws FrameRecorder.Exception * @throws FrameFilter.Exception */ public void start() throws FrameRecorder.Exception, FrameFilter.Exception { if(mRecording) { return; } int rotation = mBuilder.mMyOrientationDetector.getOrientation(); if(rotation == 0 || rotation == 180) { mFFmpegFrameRecorder = mFFmpegFrameRecorderV; } else { mFFmpegFrameRecorder = mFFmpegFrameRecorderL; } initFilter(); mBuilder.mCamera.setPreviewCallback(this); mFFmpegFrameRecorder.start(); mFFmpegFrameFilter.start(); mRecording = true; mRunAudioThread = true; mAudioThread = new Thread(mAudioRecordRunnable); mAudioThread.start(); mStartTime = System.currentTimeMillis(); }
Example #3
Source File: Recorder.java From VideoAndroid with Apache License 2.0 | 6 votes |
/** * 暂停视频 * @throws FrameRecorder.Exception * @throws FrameFilter.Exception */ public void stop() throws FrameRecorder.Exception, FrameFilter.Exception { if(!mRecording) { return; } mStartTime = 0L; mRunAudioThread = false; try { mAudioThread.join(); } catch (InterruptedException e) { // reset interrupt to be nice Thread.currentThread().interrupt(); return; } mAudioThread = null; if (mFFmpegFrameRecorder != null && mRecording) { mRecording = false; mFFmpegFrameRecorder.stop(); mFFmpegFrameRecorder.release(); mFFmpegFrameFilter.stop(); mFFmpegFrameFilter.release(); } }
Example #4
Source File: Recorder.java From VideoAndroid with Apache License 2.0 | 6 votes |
@Override public void onPreviewFrame(byte[] data, Camera camera) { if (mFrame != null && mRecording) { ((ByteBuffer)mFrame.image[0].position(0)).put(data); try { long t = 1000 * (System.currentTimeMillis() - mStartTime); if (t > mFFmpegFrameRecorder.getTimestamp()) { mFFmpegFrameRecorder.setTimestamp(t); } mFFmpegFrameFilter.push(mFrame); Frame frame2; while ((frame2 = mFFmpegFrameFilter.pull()) != null) { mFFmpegFrameRecorder.record(frame2); //录制该图片 } } catch (FFmpegFrameRecorder.Exception | FrameFilter.Exception e) { e.printStackTrace(); } } }
Example #5
Source File: FilterImageTransform.java From DataVec with Apache License 2.0 | 6 votes |
/** * Constructs a filtergraph out of the filter specification. * * @param filters to use * @param width of the input images * @param height of the input images * @param channels of the input images */ public FilterImageTransform(@JsonProperty("filters") String filters, @JsonProperty("width") int width, @JsonProperty("height") int height, @JsonProperty("channels") int channels) { super(null); this.filters = filters; this.width = width; this.height = height; this.channels = channels; int pixelFormat = channels == 1 ? AV_PIX_FMT_GRAY8 : channels == 3 ? AV_PIX_FMT_BGR24 : channels == 4 ? AV_PIX_FMT_RGBA : AV_PIX_FMT_NONE; if (pixelFormat == AV_PIX_FMT_NONE) { throw new IllegalArgumentException("Unsupported number of channels: " + channels); } try { filter = new FFmpegFrameFilter(filters, width, height); filter.setPixelFormat(pixelFormat); filter.start(); } catch (FrameFilter.Exception e) { throw new RuntimeException(e); } }
Example #6
Source File: FilterImageTransform.java From deeplearning4j with Apache License 2.0 | 6 votes |
/** * Constructs a filtergraph out of the filter specification. * * @param filters to use * @param width of the input images * @param height of the input images * @param channels of the input images */ public FilterImageTransform(@JsonProperty("filters") String filters, @JsonProperty("width") int width, @JsonProperty("height") int height, @JsonProperty("channels") int channels) { super(null); this.filters = filters; this.width = width; this.height = height; this.channels = channels; int pixelFormat = channels == 1 ? AV_PIX_FMT_GRAY8 : channels == 3 ? AV_PIX_FMT_BGR24 : channels == 4 ? AV_PIX_FMT_RGBA : AV_PIX_FMT_NONE; if (pixelFormat == AV_PIX_FMT_NONE) { throw new IllegalArgumentException("Unsupported number of channels: " + channels); } try { filter = new FFmpegFrameFilter(filters, width, height); filter.setPixelFormat(pixelFormat); filter.start(); } catch (FrameFilter.Exception e) { throw new RuntimeException(e); } }
Example #7
Source File: RecorderActivity.java From VideoAndroid with Apache License 2.0 | 5 votes |
private void startRecorder() { if(mRecorder == null || mRecorder.isRecording()) { return; } try { mRecorder.start(); mRecorderCircleView.start(); mMyHandler.sendEmptyMessageDelayed(MSG_STOP, MAX_RECORDER_TIME); //MAX_RECORDER_TIME后自动停止 } catch (FrameRecorder.Exception|FrameFilter.Exception e) { e.printStackTrace(); Toast.makeText(getApplicationContext(), "录制失败", Toast.LENGTH_SHORT).show(); } }
Example #8
Source File: RecorderActivity.java From VideoAndroid with Apache License 2.0 | 5 votes |
private void releaseRecoder() { if(mRecorder != null) { if(mRecorder.isRecording()) { try { mRecorder.stop(); } catch (FrameRecorder.Exception|FrameFilter.Exception e) { e.printStackTrace(); } } mRecorder = null; } }