ffmpeg获取视频时长.exe 能获取swf的缩略图吗

2709人阅读
FFmpeg是一个开源免费跨平台的视频和方案,属于自由,采用LGPL或GPL许可证(依据你选择的组件)。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多codec都是从头开发的。
& &FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。它包括了目前领先的音/视频编码库libavcodec。 FFmpeg是在Linux下开发出来的,但它可以在包括Windows在内的大多数操作系统中编译。这个项目是由Fabrice Bellard发起的,现在由Michael Niedermayer主持。可以轻易地实现多种视频格式之间的相互转换,例如可以将摄录下的视频avi等转成现在视频网站所采用的flv格式
原创整理不易,转载请注明出处:
完整代码下载地址:
一、主要功能:
1、视频格式转换功能
ffmpeg视频转换功能。,比如可以将多种视频格式转换为flv格式,可不是视频信号转换 。
ffmpeg可以轻易地实现多种视频格式之间的相互转换(wma,rm,avi,mod等),例如可以将摄录下的视频avi等转成现在视频网站所采用的flv格式。
2、视频截图功能
对于选定的视频,截取指定时间的缩略图。视频抓图,获取图和动态图,不提倡抓gif文件;因为抓出的gif文件大而播放不流畅
3、给视频加水印功能
使用ffmpeg 视频添加水印(logo)。
二、下载部署安装
&ffmpeg文件太大上传不了,需要的请自已经下载,安装很简单,如下操作则可
首先下载ffmpeg解压
建立一个bat文件
F:/zuidaimaPro/pro3/ffmpeg-/bin/ffmpeg.exe -i %1 -ss 20 -vframes 1 -r 1 -ac 1 -ab 2 -s 160*120 -f
简单解释:
E:/zuidaimaPro/pro3/ffmpeg-/bin/ffmpeg.exe &--- ffmpeg的路径
%1 &%2 ---和C语言有点相似是为传参数保留位置
-ss 20 -- 要截取多少秒后的图片
若不明白或者想了解更多其它命令,请百度探索,网上有大把。
三、项目结构及运行效果图
项目运行效果:
见证货真价实的视频截图效果:
版权声明:本文为博主原创文章,未经博主允许不得转载。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1259505次
积分:17985
积分:17985
排名:第219名
原创:440篇
转载:88篇
评论:1069条
阅读:25583
(1)(2)(1)(2)(9)(5)(31)(30)(31)(31)(33)(26)(22)(1)(1)(3)(2)(1)(2)(1)(6)(30)(11)(3)(3)(11)(7)(11)(14)(1)(16)(43)(15)(71)(54)网站调用土豆视频时怎么抓取缩略图?(高分悬赏)_百度知道
JS脚本和FLASH内容连接,把内容的一个帧截下来就显示了。
【ffmpeg.exe可执行文件获取】:
网上搜索后得到编译好的ffmpeg文件,下载地址:HTTP:download!csdn!net/source/453719(!改成.)
将下载的文件解压,如:D:\ffmpeg,一共三个文件,分别是:ffmpeg.exe、ffplay.exe、pthreadGC2.dll。我们用到的应该是ffmpeg.exe。
【实现获取视频缩略图的两种方式】:
1、调用批处理文件:
批处理文件(如:ffmpeg.bat),内容:D:/ffmpeg/ffmpeg.exe -i %1 -ss 20 -vframes 1 -r 1 -ac 1 -ab 2 -s 160*120 -f image2 %2 。其中,%1与%2类似C语言中的参数,代码中是需要替换的,Java代码如下:
public static void main(String[] args) {
// 视频文件
String videoRealPath = &E://test.fl...
其他类似问题
为您推荐:
土豆视频的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁获取优酷土豆视频缩略图和swf地址 - 下载频道 - CSDN.NET
&&&&获取优酷土豆视频缩略图和swf地址
&获取优酷土豆视频缩略图和swf地址
获取优酷土豆视频缩略图和swf地址
若举报审核通过,可奖励20下载分
被举报人:
ooo_my_god
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
您可能还需要
Q.为什么我点的下载下不了,但积分却被扣了
A. 由于下载人数众多,下载服务器做了并发的限制。若发现下载不了,请稍后再试,多次下载是不会重复扣分的。
Q.我的积分不多了,如何获取积分?
A. 获得积分,详细见。
完成任务获取积分。
评价资源返积分。
论坛可用分兑换下载积分。
第一次绑定手机,将获得5个C币,C币可。
下载资源意味着您已经同意遵守以下协议
资源的所有权益归上传用户所有
未经权益所有人同意,不得将资源中的内容挪作商业或盈利用途
CSDN下载频道仅提供交流平台,并不能对任何下载资源负责
下载资源中如有侵权或不适当内容,
本站不保证本站提供的资源的准确性,安全性和完整性,同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
开发技术下载排行
积分不够下载该资源
如何快速获得积分?
你下载资源过于频繁,请输入验证码
如何快速获得积分?
你已经下载过该资源,再次下载不需要扣除积分
获取优酷土豆视频缩略图和swf地址
所需积分:4
剩余积分:
VIP会员,免积分下载
会员到期时间:日
剩余下载次数:1000
VIP服务公告:Java+ffmpeg 视频转码+缩略图提取
项目里遇到视频发布的一个功能,没接触过,百度了一些方法总结了一下写了现在的方法。
做了一些视频格式的效验,只保留了一些主流视频格式,压缩率一般,80%左右。
最开始用的Runtime运行,不过弹的那个小黑窗有点反感,改用ProcessBuilder了,顺便加了获取ffmpeg输出的方法(缩略图方法没有加上,几秒钟的事情,意义不大)。
项目里用的swfupload上传组件,结合这个返回值的话后续能做一个转换进度(理论上,过程应该比较麻烦),如果不需要的话自行取舍吧。
需要注意的是如果不在Tomcat(我的项目是这个)输出返回值的话转码和JAVA方法不是同步完成的,转码毕竟是需要较长时间的。
转码的进程和Tomcat没什么冲突,各忙各的,JAVA方法完成之后就能忙别的了,转码会自己执行直到转码结束。多进程还没试过,应该问题不大,只要服务器顶的住的话。
如果转码和缩略图都需要执行的话建议先取缩略图,再执行转码。
ffmpeg参数解释:
import java.io.F import java.io.InputS import java.util.HashM import java.util.L
public class ConvertVideo { &&& private static HashMap&String, String& fileT &&& &&& static { &&&&&&& fileType = new HashMap&String, String&(); &&&&&&& fileType.put(&avi&, &true&); &&&&&&& fileType.put(&mpg&, &true&); &&&&&&& fileType.put(&wmv&, &true&); &&&&&&& fileType.put(&3gp&, &true&); &&&&&&& fileType.put(&mov&, &true&); &&&&&&& fileType.put(&mp4&, &true&); &&&&&&& fileType.put(&asf&, &true&); &&&&&&& fileType.put(&asx&, &true&); &&&&&&& //fileType.put(&flv&, &true&); &&& } &&& &&& public static boolean processFlv(String INPUT_PATH,String OUTPUT_PATH) { &&&&&&& System.out.println(&OUTPUT_PATH=&+OUTPUT_PATH); &&&&&&& //效验文件是否存在,自行取舍 &&&&&&& if(new File(OUTPUT_PATH).exists()) &&&&&&& List&String& commend = new java.util.ArrayList&String&(); &&&&&&&&//ffmpeg地址,不需要带.exe后缀 &&&&&&& commend.add(&d:\\video\\ffmpeg\\ffmpeg&); &&&&&&& commend.add(&-i&); &&&&&&& commend.add(INPUT_PATH); &&&&&&& commend.add(&-y&); &&&&&&& commend.add(&-s&); &&&&&&& commend.add(&480*360&); &&&&&&& commend.add(&-b&); &&&&&&& commend.add(&1000&); &&&&&&& commend.add(&-qscale&); &&&&&&& commend.add(&4&); &&&&&&& commend.add(OUTPUT_PATH); &&&&&&& try { &&&&&&&&&&& ProcessBuilder builder = new ProcessBuilder(); &&&&&&&&&&& mand(commend); &&&&&&&&&&& builder.redirectErrorStream(true); &&&&&&&&&&& //builder.start(); &&&&&&&&&&& Process process = builder.start(); &&&&&&&&&&& InputStream in = process.getInputStream(); &&&&&&&&&&& byte[] re = new byte[1024]; &&&&&&&&&&& while (in.read(re)!= -1) { &&&&&&&&&&&&&&& System.out.println(new String(re)); &&&&&&&&&&& } &&&&&&&&&&& in.close(); &&&&&&&&&&& &&&&&&& } catch (Exception e) { &&&&&&&&&&& e.printStackTrace(); &&&&&&&&&&& &&&&&&& } &&& }
&&& public static boolean processImg(String INPUT_PATH,String IMG_PATH) { &&&&&&& System.out.println(&IMG_PATH=&+IMG_PATH); &&&&&&& if(new File(IMG_PATH).exists()) &&&&&&& List&String& commend = new java.util.ArrayList&String&(); &&&&&&& commend.add(&d:\\video\\ffmpeg\\ffmpeg&); &&&&&&& commend.add(&-i&); &&&&&&& commend.add(INPUT_PATH); &&&&&&& commend.add(&-y&); &&&&&&& commend.add(&-f&); &&&&&&& commend.add(&image2&); &&&&&&& commend.add(&-ss&); &&&&&&& commend.add(&10&); &&&&&&& commend.add(&-t&); &&&&&&& commend.add(&0.001&); &&&&&&& commend.add(&-s&); &&&&&&& commend.add(&320x240&); &&&&&&& commend.add(IMG_PATH); &&&&&&& try { &&&&&&&&&&& ProcessBuilder builder = new ProcessBuilder(); &&&&&&&&&&& mand(commend); &&&&&&&&&&& builder.start(); &&&&&&&&&&& &&&&&&& } catch (Exception e) { &&&&&&&&&&& e.printStackTrace(); &&&&&&&&&&& &&&&&&& } &&& } &&& &&& private static boolean checkContentType(String INPUT_PATH) { &&&&&&& String type = INPUT_PATH.substring(INPUT_PATH.lastIndexOf(&.&) + 1, INPUT_PATH.length()).toLowerCase(); &&&&&&& // ffmpeg能解析的格式:(asx,asf,mpg,wmv,3gp,mp4,mov,avi,flv等) &&&&&&& return &true&.equals(fileType.get(type)); &&& } &&& &&& public static void convertToFLV(String INPUT_PATH) { &&&&&&& String FILE_PATH = INPUT_PATH.substring(0,INPUT_PATH.lastIndexOf(&.&)); &&&&&&& String OUTPUT_PATH = FILE_PATH + &.flv&; &&&&&&& String IMG_PATH = FILE_PATH + &.jpg&; &&&&&&& System.out.println(&INPUT_PATH=&+INPUT_PATH); &&&&&&& processImg(INPUT_PATH,IMG_PATH); &&&&&&& if (checkContentType(INPUT_PATH)){ &&&&&&&&&&& processFlv(INPUT_PATH,OUTPUT_PATH); &&&&&&& } &&& } &&& &&& public static void main(String[] args){ &&&&&&& convertToFLV(&D:\\video\\a1.avi&); &&& } }
本分类共有文章11篇,更多信息详见
& 2012 - 2014 &
&All Rights Reserved. &java使用ffmpeg生成视频缩略图 - 为程序员服务
为程序员服务
java使用ffmpeg生成视频缩略图
生成视频缩略图,需要使用ffmpeg。
FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件)。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多codec都是从头开发的。
ffmpeg功能非常强大,大部分流行的视频格式的都能生成缩略图
首先下载ffmpeg解压
建立一个bat文件
E:/ffmpeg/bin/ffmpeg.exe -i %1 -ss 20 -vframes 1 -r 1 -ac 1 -ab 2 -s 160*120 -f
上面命令行解释:
E:/ffmpeg/bin/ffmpeg.exe ffmpeg的路径
%2 和C语言有点相似是为传参数保留位置
20 要截取多少秒后的图片
打开MyEclipse,建立一个工程 ,以及一个java文件
package cn.outofmemory.
import java.io.IOE
public class Ffmpeg {
public static void main(String[] args) {
//视频文件
String videoRealPath = &F://瞬间.flv&;
//截图的路径(输出路径)
String imageRealPath =&F://a.jpg&;
//调用批处理文件
Runtime.getRuntime().exec(&cmd /c start F://ffmpeg.bat & + videoRealPath + & & + imageRealPath);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
您可能的代码
相关聚客文章
荣誉:1170
相关专栏文章}

我要回帖

更多关于 ffmpeg swf 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信