zoukankan      html  css  js  c++  java
  • 使用ffmpeg对视频的一些基本操作

    下面是获得缩略图的常用命令:

    示例1:
    截取一张352×240尺寸大小的,格式为jpg的图片:
    ffmpeg -i test.asf -y -f image2 -t 0.001 -s 352×240 a.jpg

    示例2:
    把视频的前30帧转换成一个Animated Gif :
    ffmpeg -i test.asf -vframes 30 -y -f gif a.gif

    示例3:这个是我需要的!
    在视频的第8.01秒处截取 320*240 的缩略图

    ffmpeg -i test.flv -y -f mjpeg -ss 3 -t 0.001 -s 320×240 test.jpg

    示例4:

    把视频转换成flv文件(这个用得最多,现在Flv基本上已经成了网络视频的标准了)
    ffmpeg -i source -s 320×240 -b 700k -aspect 4:3 -y -f flv dest.flv 。
    其中:
    source:是原始文件的名字,可以是mov,mpeg,avi,wmv各类格式,ffmpeg基本都支持。
    -s wxh: 指定视频的宽和高
    -b : 设定视频的比特率
    -aspect: 保持视频的比率。如4:3或者16:9
    -y : 如果目标文件存在时,直接覆盖原有的目标文件。
    -f : 指定转换的文件格式,这里是flv格式。(其实如果不指定文件格式,ffmpeg也会按文件的后缀名来进行转换)。
    dest: 转换的目标文件名字,并不一定需要是flv,可以是mov,mpeg以及其他的常用格式。
    参数说明:

    -L license

    -h 帮助

    -fromats 显示可用的格式,编解码的,协议的

    -f fmt 强迫采用格式fmt

    -I filename 输入文件

    -y 覆盖输出文件

    -t duration 设置纪录时间 hh:mm:ss[.xxx]格式的记录时间也支持

    -ss position 搜索到指定的时间 [-]hh:mm:ss[.xxx]的格式也支持

    s wxh: 指定视频的宽和高

    ****************************************************************************

    示例3:是针对flv格式的视频获得指定处的缩略图,记住 -f强制转换的格式是mjpeg因为我要获得.jpg的缩略图,网上有很多写成文章都是写成ffmpeg -i test.flv -y -f image2 -ss 08.010 -t 0.001 -s 352×240 b.jpg 这个是错误,不可能输出.

    下面是PHP调用shell命令获得缩略图的代码

    1. <!--?php  
    2.   
    3. exec("/usr/bin/ffmpeg -i /usr/local/apache/htdocs/test.flv -y -f mjpeg -ss 3 -t 0.001 -s 320x240 /usr/local/apache/htdocs/test.jpg",$out,$status);  
    4.   
    5. print_r($status);//0是成功 1是失败  
    6.   
    7. ?-->  

    如果没有什么图片生成的可能原因:

    ①对于存储生成图片的文件夹需要有写入权限 #chomd 777 /usr/local/apache/htdocs

    ②在php.ini中有disable_functions禁用了php调用shell命令函数,

    disable_functions = proc_open, popen,exec, system, shell_exec, passthru

    解决办法:注释掉disable_functions这一项

    #disable_functions = proc_open, popen,exec, system, shell_exec, passthru

    或者disable_functions = (把禁言的函数除去)

    保存关闭开启就可以了

    ③php.ini中的安全模式必须关闭 才可以调用exec函数

    safe_mode = off

    ④图片时间截取也很重要,很有可能是无效图片或者是黑屏

    建议 增加关键帧,通常第一帧为关键帧,可以使用:vframes:帧参数,舍弃微秒参数,只保留时间参数

    /usr/bin/ffmpeg -i /usr/local/apache/htdocs/test.flv -y -f mjpeg -ss 3 -vframes 1 -s 320×240 /usr/local/apache/htdocs/test.jpg

    来源 :http://www.sifangke.com/2011/09/ffmpeg-use/

  • 相关阅读:
    SQOOP的安装配置_Linux伊甸园开源社区24小时滚动更新开源资讯,全年无休!
    Cloudera's Hadoop Demo VM for CDH4 Cloudera Support
    海量文档查同或聚类问题 Locality Sensitive Hash 算法
    part 1: resemblance with the jaccard coefficient
    计算机科学中最重要的32个算法zz
    详细的tfidf构建过程实例(转)
    2012 Beijing Google Dev FastDay(11/03/2012) 移动新观察
    百度技术沙龙
    Hive官方手册翻译(Getting Started) 实践检验真理 51CTO技术博客
    《周末休闲吧》:教你如何玩车震——车震全程攻略!_周末休闲吧_百度空间
  • 原文地址:https://www.cnblogs.com/Shaw0/p/6945774.html
Copyright © 2011-2022 走看看