`
mozartghost
  • 浏览: 11358 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

[原创]JAVA环境下,增添xuggle外部库 将视频文件转换成音频文件

    博客分类:
  • JAVA
 
阅读更多

引进外部类库:xuggle-xuggler.jar 文件 


下载地址:http://www.xuggle.com/xuggler/downloads/



也可以直接从本文这里点击链接下载:

32 Bit, Java 1.5 or later xuggle-xuggler-setup.exe


下载完成之后安装,然后进安装目录  \Xuggle\share\java\jars

将目录下的  xuggle-xuggler.jar 文件导入到eclipse buildpath userLibrary里,

然后再进入  \Xuggle\bin 目录,将所有文件拷贝到 项目工程目录的 \bin 路径下(或者拷贝到你的JDK安装目录里的那个 \bin 目录下 也可以!)


以FLV转无损的WAV为例,贴上代码:

 

 

public class Main implements IMediaListener{
	
	IMediaWriter writer;
	boolean flag=false;

	public static void main(String[] args) {
		new Main().doIt();
	}

	public void doIt() {
		IMediaReader reader = ToolFactory.makeReader("E:\\aaa.flv");//E:\\aaa.rmvb  E:\\aaa.flv
		writer = ToolFactory.makeWriter("e:\\out.wav", reader);
		
		int sampleRate = 22050;//48000   22050
		int channels = 2;
		writer.addAudioStream(0, 0, ICodec.ID.CODEC_ID_PCM_S16LE, channels,
				sampleRate);
		reader.addListener(this);
		while (reader.readPacket() == null) {

		}
	}

	@Override
	public void onAddStream(IAddStreamEvent event) {
		// TODO Auto-generated method stub
		writer.onAddStream(event);
	}

	/**音频解码在这里*/
	@Override
	public void onAudioSamples(IAudioSamplesEvent event) {
		// TODO Auto-generated method stub
		writer.onAudioSamples(event);
	}

	@Override
	public void onClose(ICloseEvent event) {
		// TODO Auto-generated method stub
		writer.onClose(event);
	}

	@Override
	public void onCloseCoder(ICloseCoderEvent event) {
		// TODO Auto-generated method stub
		writer.onCloseCoder(event);
	}

	@Override
	public void onFlush(IFlushEvent event) {
		// TODO Auto-generated method stub
		writer.onFlush(event);
	}

	@Override
	public void onOpen(IOpenEvent event) {
		// TODO Auto-generated method stub
		writer.onOpen(event);
	}

	@Override
	public void onOpenCoder(IOpenCoderEvent event) {
		// TODO Auto-generated method stub
		writer.onOpenCoder(event);
	}

	@Override
	public void onReadPacket(IReadPacketEvent event) {
		// TODO Auto-generated method stub
		writer.onReadPacket(event);
	}

	@Override
	public void onVideoPicture(IVideoPictureEvent event) {
		// TODO Auto-generated method stub
		//这里屏蔽了Video的输出
	}

	@Override
	public void onWriteHeader(IWriteHeaderEvent event) {
		// TODO Auto-generated method stub
		writer.onWriteHeader(event);
	}

	@Override
	public void onWritePacket(IWritePacketEvent event) {
		// TODO Auto-generated method stub
		writer.onWritePacket(event);
	}

	@Override
	public void onWriteTrailer(IWriteTrailerEvent event) {
		// TODO Auto-generated method stub
		writer.onWriteTrailer(event);
	}
	
	public class MyCoder extends ICodec{

		protected MyCoder(long cPtr, boolean cMemoryOwn) {
			super(cPtr, cMemoryOwn);
			// TODO Auto-generated constructor stub
		}
	}
}
 

 

 

解码后的WAV文件在使用foobar2000播放时,效果如下图所示:

 

 


注意:常见的WAV文件必须使用ICodec.ID.CODEC_ID_PCM_S16LE编码,channels 是声道数量,sampleRate 是采样率,

当使用ICodec.ID.CODEC_ID_PCM_S16LE给WAV文件编码时,

必须和源文件采样率一致,否则会出现播放时间缩短、播放速度加快或者相反的异常结果!

 

4
3
分享到:
评论
1 楼 xiangyuwen 2012-03-19  
请问一下,我现在也在研究这个,但想问一个问题,xuggle提供接收网络流,那有没有提供发送网络流的,接收是通过rtmp方式接收,发送看了一些,好象都用的其他工具。不知道xuggle有没有做发送网络流这一块。

相关推荐

    java实现上传音频视频pdf文件功能

    在Java开发环境中,实现上传音频、视频和PDF文件的功能是一项常见的任务,这通常涉及到Web应用程序的设计,特别是涉及用户交互的部分。下面将详细讲解如何利用Java技术来实现这一功能。 首先,我们需要一个前端页面...

    JAVA获取视频缩略图

    在Java编程环境中,获取视频缩略图是一项常见的需求,尤其在多媒体应用或者视频分享平台中。这个过程涉及到多媒体处理和图像操作的知识。本文将详细解释如何在Java中实现这一功能,以及相关的技术点。 首先,Java...

    java使用Xuggler获得视频时长,分辨率,高宽,码率等信息

    Xuggler是一个强大的开源库,专为处理音视频数据而设计,它提供了丰富的API,使得在Java环境中解析和操作多媒体文件变得简单。在本文中,我们将详细探讨如何使用Xuggler来获取这些重要信息。 首先,Xuggler基于...

    java音频格式转换工具.zip

    java音频格式转换工具.zipjava音频格式转换工具.zip java音频格式转换工具.zipjava音频格式转换工具.zip java音频格式转换工具.zipjava音频格式转换工具.zip java音频格式转换工具.zipjava音频格式转换工具.zip java...

    视频时长和截取视频封面(Java)

    在Java编程环境中,处理视频时长和截取视频封面是一项常见的任务,特别是在开发多媒体应用程序或者视频处理服务时。本教程将详细介绍如何利用Java实现这两个功能。 首先,我们要明白,Java本身并不直接支持视频处理...

    java任意音频格式转码

    在这个场景中,我们需要关注的关键技术是利用Java进行音频格式的转换,特别是如何利用ffmpeg命令行工具在Windows和Linux环境下实现这一目标。下面将详细讨论相关的知识点。 首先,`ffmpeg`是一个强大的开源多媒体...

    java+ffmpeg视频、音频转码

    这些库提供了与FFmpeg交互的API,可以方便地进行视频音频的读取、转码、合成等操作。 2. **ChangeVideo.java**: 这个文件很可能是Java程序的一个类,用于实现视频转换功能。它可能包含启动FFmpeg进程、设置参数、...

    java 视频格式转换-ffmpeg

    Java FFmpeg Wrapper将FFmpeg的命令行工具包装成Java API,使得开发者可以在Java代码中直接调用转换视频的方法,无需关心底层的命令行执行细节。 以下是一些核心知识点: 1. **FFmpeg命令行工具**:FFmpeg的基本...

    java任意音频文件格式转mp3

    Java音频视频编码器,本文实例将任何音频格式转换为MP3格式 您还可以调整视频大小,更改其大小和比例等 本文实例实用于任何Windows,MacOS,Linux系统 附:完整jar项目,完善的demo,详细的注释,简单易操作

    JAVA 音频文件PCM转WAV Utils类

    在这个场景下,我们关注的是将PCM(脉冲编码调制)音频文件转换为WAV(Waveform Audio Format)文件。PCM是一种未经压缩的原始音频数据格式,而WAV是一种流行的、包含更多元数据的容器格式,广泛用于存储和交换音频...

    java源码 java获取音频文件 播放时长AudioDemo 2018127

    在Java编程环境中,开发人员经常需要处理多媒体文件,如音频文件。这个名为"AudioDemo"的项目就是一个关于如何使用Java来获取音频文件播放时长的示例代码。在这个项目中,开发者可以学习到如何利用Java的内置库来...

    Java大文件上传(1GB,图片,视频,Flash文件,音频文件)

    综上所述,Java通过分块上传和流式上传策略,配合适当的错误处理、安全性控制和存储优化,能够有效地处理大文件上传,包括图片、视频、Flash文件和音频文件等不同类型的多媒体资源。实际开发中,可以根据具体项目...

    将MP4视频和MP4音频合并成MP4文件

    本教程将详细讲解如何将两个MP4文件,一个包含视频流,另一个包含音频流,合并成一个新的MP4文件。我们将关注MP4格式,H264视频编码和AAC音频编码的相关知识,以及实际操作中的延时设置。 首先,理解MP4文件结构至...

    xuggle.zip(最全的)

    Xuggle-xuggler 是一个基于Java的视频处理库,它使开发人员能够直接从Java应用程序中解码和编码多种媒体文件格式。该项目遵循较宽松的GNU公共许可协议(LGPL),但若与GPL版本的FFmpeg一同编译,则整体采取GPL许可证...

    Java应用程序转化成exe文件的N种方法

    exe4j是EJ Technologies开发的一款工具,能够将Java应用程序转换为Windows平台下的exe文件,同时提供JRE捆绑选项,确保目标机器上即使没有安装Java环境也能运行程序。exe4j还支持高级定制功能,如自定义图标、版本...

    java1.0.2音频格式转换

    Java 1.0.2 音频格式转换是一款基于Java平台的工具,它允许用户将不同的音频文件格式进行互换,特别提及的是可以将.wav格式的音频文件转换为.mp3格式。这种转换对于多媒体处理、音乐库管理和网络传输等方面非常有用...

    java上传视频音频图片总结

    在Java开发中,处理视频、音频和图片等多媒体文件上传是一项常见的任务。这些文件通常较大,需要高效且安全的处理方式。以下是对Java上传视频、音频和图片的全面总结: 一、文件上传基础 1. **Multipart/form-data...

    java调用ffmpeg转换视频,并读取转换后视频的分辨率、大小以及时长

    java调用ffmpeg转换视频,并读取转换后视频的分辨率、大小以及时长。主要参考http://blog.sina.com.cn/s/blog_a5116c670102wiwj.html 的代码方式。步骤: 1.研究java如何调用外部程序 2.研究ffmpeg转换视频格式的...

    wav 格式文件用于 java 程序转换mp3 使用

    Java提供了丰富的API来处理音频数据,通过这些API,开发者可以将WAV格式的音频文件转换为MP3格式。MP3格式是一种有损压缩的音频格式,它通过放弃一些对人耳听觉不那么敏感的音频数据来实现较小的文件体积,因此在...

    Java从视频中提取音频

    Java从视频中提取音频 下载依赖包是会比较慢,请在网络好的环境下载 依赖包下载好后,直接编译即可运行 懒得下载或网络不好的,可以去下方地址下载 https://download.csdn.net/download/qq_34096425/87804913

Global site tag (gtag.js) - Google Analytics