- 浏览: 39621 次
文章分类
最新评论
1.前言
由于最近在做ios与android端需要做amr至mp3的转换,在网上搜了下资料,基本都是用ffmpeg做音视频类转换
2.ffmpeg下载安装
2.1、下载ffmpeg。
下载网址:http://www.ffmpeg.org/download.html
2.2、解压缩
2.3、编辑profile文件:
vi /etc/profile
在文件末尾加上两句话:
2.4、配置安装路径之类的:
2.5、编译安装
2.6、安装之后在/usr/local/ffmpeg会看到有三个目录
2.7、为了防止执行程序找不到库文件,
8、若出现error while loading shared libraries: libavdevice.so.52的错误
3.shell脚本命令转换
4.ffmpeg自带转换
5.Jave转换
下载地址:http://www.sauronsoftware.it/projects/jave/download.php
备注:
如果自带的FFmpeg转码报错,编译最新的ffmpeg,执行就可以了
官方示例:
由于最近在做ios与android端需要做amr至mp3的转换,在网上搜了下资料,基本都是用ffmpeg做音视频类转换
2.ffmpeg下载安装
2.1、下载ffmpeg。
下载网址:http://www.ffmpeg.org/download.html
2.2、解压缩
tar -zxvf ffmpeg-2.0.1.tar.gz
2.3、编辑profile文件:
vi /etc/profile
在文件末尾加上两句话:
export FFMPEG_HOME=/usr/local/ffmpeg export PATH=$FFMPEG_HOME/bin:$PATH
2.4、配置安装路径之类的:
./configure --enable-shared --prefix=/usr/local/ffmpeg --enable-shared 参数据说是允许其编译产生动态库,在以后的编程中要用到这个几个动态库,我也没考证,就直接用了。 如果出现异常,提示因为缺少yasm,需要添加参数,再执行以下命令: ./configure --enable-shared --disable-yasm --prefix=/usr/local/ffmpeg 如果执行结果不对,可以根据提示信息,并查看帮助,解决问题 ./configure --help
2.5、编译安装
make make install
2.6、安装之后在/usr/local/ffmpeg会看到有三个目录
bin 执行文件目录 lib 静态,动态链接库目录 include 编程用到的头文件
2.7、为了防止执行程序找不到库文件,
可以将/usr/local/ffmpeg/lib目录设置到LD_LIBRARY_PATH环境变量
8、若出现error while loading shared libraries: libavdevice.so.52的错误
修改/etc/ld.so.conf 在最后一行加上/usr/local/ffmpeg/lib ldconfig -v 并修改 /usr/local/ffmpeg/lib目录下的文件权限为777
3.shell脚本命令转换
./ffmpeg -i source.amr dest.mp3
4.ffmpeg自带转换
/** * useFfmpegToMp3 * * @param ffmpeg * @param source * @param target */ public static void useFfmpegToMp3(String ffmpeg, String source, String target){ Runtime run = null; try { long start=System.currentTimeMillis(); run = Runtime.getRuntime(); //设置文件运行权限 run.exec(new String[] { "/bin/chmod", "755", ffmpeg}); String runCmd = ffmpeg + " -i " + source + " " + target; //运行命令 Process proc = run.exec(runCmd); proc.getOutputStream().flush(); proc.getOutputStream().close(); proc.getInputStream().close(); LOGGER.info("Dest File Size:{}", new File(target).length()); long end=System.currentTimeMillis(); LOGGER.info("useFfmpegToMp3 Complete:{} -> {}, cost ms:{}", source, target, end-start); } catch (Exception e) { LOGGER.error("useJaveToMp3 Exception: ", e); } finally{ //run调用lame解码器最后释放内存 run.freeMemory(); } }
5.Jave转换
下载地址:http://www.sauronsoftware.it/projects/jave/download.php
/** * jave 转换mp3 * * @param source * @param target */ public static void useJaveToMp3(String source, String target) { try { long start=System.currentTimeMillis(); File sourceFile = new File(source); File targetFile = new File(target); AudioAttributes audio = new AudioAttributes(); Encoder encoder = new Encoder(); audio.setCodec("libmp3lame"); EncodingAttributes attrs = new EncodingAttributes(); attrs.setFormat("mp3"); attrs.setAudioAttributes(audio); encoder.encode(sourceFile, targetFile, attrs); LOGGER.info("Dest File Size:{}", targetFile.length()); long end=System.currentTimeMillis(); LOGGER.info("useJaveToMp3 Complete:{} -> {}, cost ms:{}", source, target, end-start); }catch (Exceptio){ LOGGER.error("useJaveToMp3 Exception: ", e); } }
备注:
如果自带的FFmpeg转码报错,编译最新的ffmpeg,执行就可以了
官方示例:
//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);
发表评论
-
JVM内存结构及分析
2017-07-16 19:38 564JVM内存模型 名称特征 ... -
JVM调优实例
2017-06-24 12:30 01.背景:由于最近上线新增业务模块,业务量要增加所以对上线服务 ... -
git did not match any file(s) known to git
2016-04-23 23:49 31181.did not match any file(s) kno ... -
Static工具类线程安全问题
2016-01-08 11:39 23481.静态方法 无论是静态方法还是实例方法,在内存中都只 ... -
JavaThread-ThreadLocal笔记
2015-12-23 14:54 5331.ThreadLocal简介 早在JDK 1.2的版本中就提 ... -
JUC-CountDownLatch笔记
2015-12-23 10:53 5631.CountDownLatch简介 CountDownLat ... -
Lambda表达式实现设计模式:命令模式
2015-10-13 09:59 707如何在使用Java 8 Lambda表达式的函数式编程方式时实 ... -
mysql 错误汇总
2015-08-12 16:49 4361.Mysql ERROR 1045 (28000): Acc ... -
Java注解
2015-08-07 11:25 01.@Retention(RetentionPolicy.RU ... -
Base64 编解码 工具类
2015-07-28 22:48 42871.工具类: import java.io.Uns ... -
HttpClient(发送字符串,multipart, 参数等)
2015-07-10 11:12 2084备注:httpclient4.5 发送MultiPart/Pa ... -
转载-搜索引擎实时秒级更新
2015-07-08 14:02 859搜索是很多用户在天 ... -
tomcat-定时任务
2015-03-30 15:27 6571.监听类 import java.util.Timer ... -
JVM-工作原理
2015-03-16 23:26 644一、 JVM的生命周期 1. J ... -
tomcat-启动时启动额外线程并控制线程状态
2015-02-04 18:22 675通过启动线程可以进行后台的操作 1.创建servlet ... -
Exception in thread "main" SoapFault - faultcode: 'soapenv:Server.userException'
2015-01-20 22:32 14281.抛出此类错误大部分都是服务端发布webservice调用出 ... -
Tomcat映射虚拟目录
2015-01-19 22:43 01.设置虚拟目录 <Host>标签</H ... -
android-运行java main方法
2014-12-30 16:10 7191.右键入口类(含有Main方法的)Run Configura ... -
Mybatis 常见错误汇总
2014-12-28 22:31 01.插入数据到数据库是异常 ### Cause: java.s ... -
jsoup
2014-12-17 00:25 01. package com.wuhao.itinfo ...
相关推荐
在"音视频开发-FFmpeg-n5.1.2开发库"中,我们可以看到不同部分的文件,这些文件对于理解和使用FFmpeg至关重要: 1. **MinGW64编译.txt**:这个文件很可能记录了使用MinGW64编译器来构建FFmpeg n5.1.2版本的过程和...
- 视频编码和格式:不同的视频编码(如H.264、VP9)和格式(如MP4、WebM)可能需要不同的处理策略。选择适合目标平台的编码和格式,以保证兼容性和性能。 - 性能优化:大规模视频处理可能需要考虑多线程、分片处理...
FFmpeg是一个开源的命令行工具,用于处理音频和视频文件,包括格式转换、编码、解码、分割、合并等操作。在Java中,我们通常通过调用FFmpeg的命令行接口或者使用已经封装好的Java库来实现这些功能。 FFmpeg本身是一...
总的来说,"linphone-ffmpeg-anyka37e"项目展示了如何利用开源工具和硬件加速技术来构建高质量的实时音视频通话系统。对于想要涉足RTC领域的开发者来说,深入研究这个项目,不仅可以学习到linphone、ffmpeg和硬件...
- 通过 FFmpeg,可以获取视频文件的各种元数据,如视频编码、音频编码、分辨率、比特率、帧率等。在 PHP 中,可以使用 `ffmpeg_movie` 类的属性来获取这些信息。 6. **静态编译**: - "win32-static" 表示这个...
FFmpeg是一个强大的开源工具集,包含了多种用于处理音视频的工具和库,如libavcodec(编码解码)、libavformat(容器格式)、libavfilter(滤镜)等。在音频处理方面,FFmpeg提供了丰富的音频编码器和解码器,支持...
它支持多种音视频编码和解码格式,同时也支持多种容器格式,并能够进行高质量的音视频转码、剪辑和滤镜处理等操作。FFmpeg的应用范围非常广泛,不仅包括音视频的录制、转换和流化,还涉及到多媒体数据的传输和存储等...
FFmpeg是一个强大的跨平台工具集,能够进行音视频编码、解码、转换和流处理。在Windows环境下安装和使用PHP-FFMpeg,需要一些特定的依赖文件,这些文件通常包括FFmpeg的动态链接库(DLL)。 在提供的压缩包文件名...
在此次讨论中,我们将聚焦于一个名为`pytranscoder-ffmpeg-2.2.1.tar.gz`的压缩包,这是一个在PyPI上发布的项目,用于实现音视频的转换和编码。让我们深入了解这个库以及其在分布式环境、云原生应用和Python编程中的...
在实际开发中,GST-FFMPEG项目的源代码(如gst-ffmpeg-master)提供了示例和接口,帮助开发者快速理解和集成这一功能。开发者可以参考项目中的示例程序,了解如何创建和配置GStreamer管道,以及如何调用FFmpeg的功能...
FFmpeg是一个开源项目,它包含了多个软件工具,可以执行各种媒体处理任务,包括编码、解码、转码、分割、合并、裁剪和旋转视频及音频文件。它支持多种常见的视频和音频格式,如MP4、AVI、FLV、MP3和WAV等。FFmpeg...
3. **FFmpeg**:FFmpeg是一个开源项目,提供一套跨平台的工具和库,用于处理音视频数据。它支持多种编码、解码、格式转换和流媒体功能。 4. **AAC(Advanced Audio Coding)**:AAC是一种音频编码标准,能以较低的...
它支持各种编码、解码、转换、流媒体操作。而 `ffmpeg-php` 是一个 PHP 扩展,允许 PHP 程序直接调用 FFmpeg 命令行工具进行多媒体处理,如视频截图、转码等操作。在 Windows 环境下,这个扩展尤其方便,因为 PHP 与...
FFmpeg是一个强大的开源工具,能够处理音频和视频文件,包括编码、解码、转换以及流媒体操作。这个项目可能是为了帮助开发者理解和应用FFmpeg在实际项目中的功能。 【描述】描述简单明了,它表明提供的资源是一个...
视频格式转换的需求普遍存在,通过FFMPEG这个开源免费的软件...实验结果表明:FFMPEG软件可以很好地实现视频格式转换,并可按需求改变其中的视频编码方式和音频编码方式,可灵活地转换视频格式,并具有很强的可移植性。
在视频处理过程中,可能需要在开始、完成或出现错误时触发相关事件,`ffmpeg-laravel`可能会利用这一特性。 8. **队列处理**:对于耗时的视频处理任务,Laravel的队列系统可以将其放到后台执行,避免阻塞用户界面,...
- FFmpeg支持众多音视频编码格式,如H.264、VP9、AAC等,这使得OpenCV能够处理各种来源的媒体文件。 - FFmpeg提供了强大的解码能力,可以将原始的二进制数据转化为可供处理的帧。 - FFmpeg具备音视频的转换和格式...
FFmpeg是一个强大的跨平台的音频和视频处理工具,被广泛用于音视频的编码、解码、转换、流处理等任务。本项目"simple-ffmpeg-player.zip"是一个基于FFmpeg实现的简单播放器,主要关注音视频处理的核心代码,不涉及...
它支持多种音视频编码解码器,能处理各种常见的音视频格式。FFmpeg的核心组件包括libavformat(用于处理容器格式)、libavcodec(处理编码和解码)、libavutil(提供通用工具函数)和libavfilter(用于视频过滤)。 ...
`ha-ffmpeg-0.15.zip`是其中一个在PyPI上发布的资源,它是一个名为`ha-ffmpeg`的Python库的版本0.15的压缩包。这个库通常是为了简化与FFmpeg工具集的交互而设计的,FFmpeg是一个强大的开源命令行工具,用于处理音频...