转自:http://tj007-bo.iteye.com/blog/435740
JAVE (Java Audio Video Encoder) 类库是一个 ffmpeg 项目的 Java 语言封装。开发人员可以使用JAVE 在不同的格式间转换视频和音频。例如将 AVI 转成 MPEG 动画,等等 ffmpeg 中可以完成的在 JAVE 都有对应的方法。
Examples
From a generic AVI to a youtube-like FLV movie, with an embedded MP3 audio stream:
File source = new File("source.avi");
File target = new File("target.flv");
AudioAttributes audio = new AudioAttributes();
audio.setCodec("libmp3lame");
audio.setBitRate(new Integer(64000));
audio.setChannels(new Integer(1));
audio.setSamplingRate(new Integer(22050));
VideoAttributes video = new VideoAttributes();
video.setCodec("flv");
video.setBitRate(new Integer(160000));
video.setFrameRate(new Integer(15));
video.setSize(new VideoSize(400, 300));
EncodingAttributes attrs = new EncodingAttributes();
attrs.setFormat("flv");
attrs.setAudioAttributes(audio);
attrs.setVideoAttributes(video);
Encoder encoder = new Encoder();
encoder.encode(source, target, attrs);
Next lines extracts audio informations from an AVI and store them in a plain WAV file:
File source = new File("source.avi");
File target = new File("target.wav");
AudioAttributes audio = new AudioAttributes();
audio.setCodec("pcm_s16le");
EncodingAttributes attrs = new EncodingAttributes();
attrs.setFormat("wav");
attrs.setAudioAttributes(audio);
Encoder encoder = new Encoder();
encoder.encode(source, target, attrs);
Next example takes an audio WAV file and generates a 128 kbit/s, stereo, 44100 Hz MP3 file:
File source = new File("source.wav");
File target = new File("target.mp3");
AudioAttributes audio = new AudioAttributes();
audio.setCodec("libmp3lame");
audio.setBitRate(new Integer(128000));
audio.setChannels(new Integer(2));
audio.setSamplingRate(new Integer(44100));
EncodingAttributes attrs = new EncodingAttributes();
attrs.setFormat("mp3");
attrs.setAudioAttributes(audio);
Encoder encoder = new Encoder();
encoder.encode(source, target, attrs);
Next one decodes a generic AVI file and creates another one with the same video stream of the source and a re-encoded low quality MP3 audio stream:
File source = new File("source.avi");
File target = new File("target.avi");
AudioAttributes audio = new AudioAttributes();
audio.setCodec("libmp3lame");
audio.setBitRate(new Integer(56000));
audio.setChannels(new Integer(1));
audio.setSamplingRate(new Integer(22050));
VideoAttributes video = new VideoAttributes();
video.setCodec(VideoAttributes.DIRECT_STREAM_COPY);
EncodingAttributes attrs = new EncodingAttributes();
attrs.setFormat("avi");
attrs.setAudioAttributes(audio);
attrs.setVideoAttributes(video);
Encoder encoder = new Encoder();
encoder.encode(source, target, attrs);
Next one generates an AVI with MPEG 4/DivX video and OGG Vorbis audio:
File source = new File("source.avi");
File target = new File("target.avi");
AudioAttributes audio = new AudioAttributes();
audio.setCodec("libvorbis");
VideoAttributes video = new VideoAttributes();
video.setCodec("mpeg4");
video.setTag("DIVX");
video.setBitRate(new Integer(160000));
video.setFrameRate(new Integer(30));
EncodingAttributes attrs = new EncodingAttributes();
attrs.setFormat("mpegvideo");
attrs.setAudioAttributes(audio);
attrs.setVideoAttributes(video);
Encoder encoder = new Encoder();
encoder.encode(source, target, attrs);
A smartphone suitable video:
File source = new File("source.avi");
File target = new File("target.3gp");
AudioAttributes audio = new AudioAttributes();
audio.setCodec("libfaac");
audio.setBitRate(new Integer(128000));
audio.setSamplingRate(new Integer(44100));
audio.setChannels(new Integer(2));
VideoAttributes video = new VideoAttributes();
video.setCodec("mpeg4");
video.setBitRate(new Integer(160000));
video.setFrameRate(new Integer(15));
video.setSize(new VideoSize(176, 144));
EncodingAttributes attrs = new EncodingAttributes();
attrs.setFormat("3gp");
attrs.setAudioAttributes(audio);
attrs.setVideoAttributes(video);
Encoder encoder = new Encoder();
encoder.encode(source, target, attrs);
相关推荐
总的来说,Java封装的FFmpeg库是Java开发者处理视频任务的强大工具,它简化了与FFmpeg交互的复杂性,使视频处理变得简单易行。结合适当的文件I/O和多线程技术,开发者可以构建高效、灵活的多媒体应用程序。
导入依赖就可以运行
总之,FFmpeg、Jave和JavaCV是Java开发者处理音视频和进行计算机视觉应用的有力工具。它们各自提供了丰富的功能,并且可以相互配合,满足从基本的多媒体处理到复杂的计算机视觉算法实现的各种需求。了解并掌握这些...
java ffmpeg实现视屏剪辑、srt字幕嵌入、视频合成、图片转视频 通过test类运行。demo基于jave的源码。对ffmpeg的两种系统下的执行文件进行了替换。所以ffmpeg版本是最新的。可以执行ffmpeg官网上大多数的命令
在IT行业中,Java是一种广泛应用的编程语言,而FFmpeg则是一个强大的开源命令行工具,用于处理音频和视频文件,包括转换、编码、解码、分割等任务。本篇将深入探讨如何在Java程序中调用FFmpeg进行视频转换。 首先,...
FFmpeg 是一个强大的开源工具集,用于处理音频和视频文件,包括编码、解码、转码、流处理等功能。在 Java 中,我们可以借助于 FFmpeg 的命令行接口与 Java 的 ProcessBuilder 类来调用 FFmpeg 进行截图操作。 首先...
FFmpeg 是一个强大的开源工具,用于处理音频和视频文件,包括格式转换。在本文中,我们将深入探讨如何使用 FFmpeg 在 Java 环境中进行 AMR 转 MP3 的操作,以及如何在 Windows 和 Linux 系统上执行这个过程。 首先...
总结来说,"MAC版最新JAVE+ffmpeg"是为Mac用户提供的一个便捷工具,结合了Java的易用性和FFmpeg的多媒体处理能力,为开发者提供了在Java环境中处理音频和视频的强大支持。无论是简单的格式转换还是复杂的多媒体应用...
2. **使用Java库与ffmpeg交互**:有一些Java库如`Xuggle`或`JAVE (Java Audio Video Encoder)`,它们封装了ffmpeg的接口,使得在Java中调用ffmpeg更加方便。这些库提供了更高级别的API,可以简化音频格式转换的代码...
FFmpeg是一个强大的跨平台命令行工具,提供了丰富的功能,包括视频转码、音频处理、流处理等。而在Java中调用FFmpeg,通常是通过执行系统命令或者使用第三方Java库,如JAVE(Java Audio Video Encoder)或Xuggler。 ...
它是一个Java封装库,允许Java开发者利用FFmpeg的强大功能。Jave库通过JNI(Java Native Interface)与FFmpeg进行交互,将FFmpeg的C/C++接口暴露给Java代码,使得开发者无需直接处理底层的系统调用或编译原生代码,...
JAVE (Java Audio Video Encoder) 类库是一个 ffmpeg 项目的 Java 语言封装。开发人员可以使用JAVE 在不同的格式间转换视频和音频。例如将 AVI 转成 MPEG 动画,等等 ffmpeg 中可以完成的在 JAVE 都有对应的方法。
在Java平台上,FFmpeg通过提供Java封装库使得开发者能够利用其功能来处理多媒体数据,例如播放、录制、转换音频和视频格式等。这个Java包类库通常被称为JavaFFmpeg或者JAVE(Java Video Encoder)。 FFmpeg的核心...
Java Jave2(Java Audio Video Encoder)是基于Java的音视频编码库,它提供了对FFmpeg库的Java封装,使得开发者可以方便地在Java程序中调用FFmpeg的功能,如视频转码、音频处理等。Jave2库不仅简化了FFmpeg的API,...
FFmpeg是一款强大的跨平台开源工具,它包含了用于处理音频和视频的一系列库和命令行工具。以下是基于这个源码包可能涉及的关键知识点: 1. **Java FFmpeg API**:Java调用FFmpeg通常通过JNI(Java Native Interface...
JAVE.jar是一个封装了FFmpeg的Java框架,在项目中能直接调用它的API来处理音视频文件。优点是使用方便,直接在项目中引入JAVE.jar即可处理媒体文件,且开发完成后可以随工程一起打包发布,不需要在目标运行环境内...
Jave框架的核心功能是提供对FFmpeg库的Java封装,FFmpeg是一个强大的多媒体处理工具集。通过Jave,开发者可以利用FFmpeg的强大功能而无需直接处理底层C/C++代码,降低了开发难度。Jave支持多种音频和视频格式,包括...
面向对象编程是Java的核心特性,它包括三个主要概念:封装、继承和多态。下面将分别详细介绍这三个概念以及它们在Java编程中的应用。 **封装**是面向对象编程的基础,它强调将数据和行为捆绑在一起,形成一个独立的...
`ffmpeg_java`暗示我们需要在Java应用中封装`ffmpeg`功能,可能创建一个自定义的视频处理类。这可能包括解析视频信息、设置转换参数、捕获并处理转换过程中的错误等。使用`ProcessBuilder`可以更好地控制命令执行...
使用Java语言调用终端开启关闭Nginx服务器,然后执行ffmpeg命令,开启转流推流。以及其它指令,来学习吧