zoukankan      html  css  js  c++  java
  • ffmpeg 频中分离 video audio 截取片断

    1。获取视频的信息
       ffmpeg -i video.avi

    2,将图片序列分解合成视频
       ffmpeg -i src.mpg image%d.jpg

       ffmpeg -f image2 -i image%d.jpg dst.mpg  

    合成注意事项:

    假设图片序列是3位数,用image%03d

    假设jpg文件名称字是乱的用。以下命令规整一下

    x=1; for i in *jpg; do counter=$(printf %03d $x); mv  "$i" image"$counter".jpg; x=$(($x+1)); done

       
    3, 从视频中分离 video, audio 片断

    仅仅要音频
    ffmpeg -i src.mp4  -ss 00:00:10 -t 00:00:5  -vn -acodec copy  dst.mp4  ( -vn 表示 "video no" , -ss 00:00:10 -t 00:00:5 表示開始时间为10秒,长度5秒)

    仅仅要视频

    ffmpeg -i src.mp4  -ss 00:00:10 -t 00:00:5  -an -vcodec copy  dst.mp4  ( -an 表示 "audio no" >)


    4.从视频抽出声音,并存为Mp3
       ffmpeg -i source_video.avi -vn -ar 44100 -ac 2 -ab 192 -f mp3 sound.mp3
    ( Ubuntu 下可能转化失败,现执行sudo apt-get install ffmpeg libavcodec-extra-53)

    5 合成视频和音频
       ffmpeg -i son.wav -i video_origine.avi video_finale.mpg (音频也能够是 mp3 。 假设音频比视频长,用KMP播放文件。 视频播完后停最后一画面,音频继续) 

    其它  
    为视频又一次编码以适合在iPod/iPhone上播放
       ffmpeg -i source_video.avi input -acodec aac -ab 128kb -vcodec mpeg4 -b 1200kb -mbd 2 -flags +4mv+trell -aic 2 -cmp 2 -subcmp 2 -s 320x180 -title X final_video.mp4

    为视频又一次编码以适合在PSP上播放
       ffmpeg -i source_video.avi -b 300 -s 320x240 -vcodec xvid -ab 32 -ar 24000 -acodec aac final_video.mp4

    将.avi转成gif动画(未压缩)
       ffmpeg -i video_origine.avi gif_anime.gif

    将.avi转成dv
       ffmpeg -i video_origine.avi -target pal-dv video_finale.dv


    将.avi压缩成divx
       ffmpeg -i video_origine.avi -s 320x240 -vcodec msmpeg4v2 video_finale.avi
       


    问题和高级技巧:

    1)The encoder 'aac' is experimental but experimental codecs are not enabled, add '-strict -2' if you want to use it.

    在command中增加  -acodec aac  -strict -2, 比方:

    $ ffmpeg    -i 02软件园.mp4 -i 1.mp3  -acodec aac  -strict -2   软件园.mp4 


    2)两个声音mix

    ffmpeg -i input1.wav -i input2.wav -filter_complex "[0:a][1:a]amerge=inputs=2[aout]" -map "[aout]" -ac 2 output.mp3

    ffmpeg -i input1.mp3 -i input2.mp3 -filter_complex amerge -c:a libmp3lame -q:a 4 output.mp3


    3) join 

    ffmpeg -i "concat:input1.mpg|input2.mpg|input3.mpg" -c copy output.mpg

    ffmpeg -f concat -i <(find . -name '*.wav' -printf "file '%p'
    ") -c copy output.wav

    4) 视频倒放

    $ ffmpeg -i input.mkv -an -qscale 1 %06d.jpg
    $ x=1; for i in $(ls -t *jpg); do counter=$(printf %03d $x); mv  "$i" img"$counter".jpg; x=$(($x+1)); done
    $ 再合成jpg

    5) 声音倒放

    转化为 wav, 用sox 实现声音反转

    sox -V audio.wav backwards.wav reverse
    6)声音压缩

    ffmpeg -i input.mkv -filter:a "atempo=2.0" -vn output.mkv



    ref

    https://trac.ffmpeg.org/wiki/Concatenate

    https://trac.ffmpeg.org/wiki/AudioChannelManipulation

    http://stackoverflow.com/questions/2553448/encode-video-in-reverse

    https://trac.ffmpeg.org/wiki/How%20to%20speed%20up%20/%20slow%20down%20a%20video


    很多其它:

    http://blog.csdn.net/leixiaohua1020/article/details/38284961

  • 相关阅读:
    ScrollVIew 边界阴影效果
    android 开发 常用工具类
    alertdialog.builder 自定义弹窗
    垂直的seekbar
    SlideSwitch
    [转]Android_气泡效果
    ListView 滚回顶部
    04_dljd_mysql登录和退出
    03_dljd_启动和关闭mysql服务
    02_dljd_mysql数据库的下载、安装与卸载
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/5171349.html
Copyright © 2011-2022 走看看