zoukankan      html  css  js  c++  java
  • ffmpeg 视频处理命令集合

    最近用到ffmpeg来处理视频,把用到的命令整理在这里做个备忘。

    使用的ffmpeg版本2.0.1,从官网下载源码,编译很简单:

    ./configure

    make

    常用命令:

    - 查看视频信息

    ffmpeg -i a.avi

    - 转成mpegts文件

    ffmpeg -i 1.avi -vcodec mpeg4 -f mpegts -qscale 1 1.avi.ts

    使用 -qscale 来设置视频质量,否则转换后视频质量会下降。

    - 转成udp ts流

    ffmpeg -re -i 1.avi -vcodec mpeg4 -f mpegts -qscale 1 udp://localhost:1234

    - 转成rtp流

    ffmpeg -re -i 1.avi -f rtp -an rtp://localhost:554

    - 转成灰度裸视频

    ffmpeg -i a.ts -f rawvideo -pix_fmt gray a.gray.ts 

    - 转成yuv裸视频

    ffmpeg -i a.ts -f rawvideo -pix_fmt uyvy422 a.gray.ts 

    - 拼接视频

    ffmpeg -i concat:"1.ts|2.ts|3.ts" -vcodec copy merge.ts

    使用-vcodec copy参数的话,拼接出来的视频未经过重新编码,可能时间戳会有问题,导致使用ffmpeg对该视频做其他处理时drop frames,所以最好是拼接后重新编码。

    - 截取一段视频

    ffmpeg -i 1.ts -ss 00:00:00 -t 00:00:10 10_seconds.ts

    - 从视频中提取图片

    ffmpeg -vcodec rawvideo -f rawvideo -pix_fmt gray -s 720x576 -i sample.ts.gray -f image2 -vcodec bmp %04d.bmp

    - 视频添加logo

    ffmpeg -i 10.20.ts -vf "movie=../resource/youku_logo.png [logo]; [in][logo] overlay=main_w - overlay_w - 10:10 [out]" -q:v 1 -vcodec mpeg4 10.20.logo.ts

    - 转分辨率

    ffmpeg -i a.ts -s 720x576 -r 25 -aspect 5:4 b.ts

    - 视频裁剪

    ffmpeg -i demo.mp4 -filter:v "crop=10:20:100:100" out.mp4

    - 视频旋转

    ffmpeg -i demo.mp4 -vf "transpose=1" out.mp4

    0 = 90CounterCLockwise and Vertical Flip (default)
    1 = 90Clockwise
    2 = 90CounterClockwise
    3 = 90Clockwise and Vertical Flip
    For 180 you can use -vf "transpose=2,transpose=2"
  • 相关阅读:
    Linux安装Gradle
    MySQL 使用自增ID主键和UUID 作为主键的优劣比较详细过程(从百万到千万表记录测试)
    Websocket实现即时通讯
    Java线程池的使用
    Html5视频播放器-VideoJS+Audio标签实现视频,音频及字幕同步播放
    几种常用的认证机制
    Spring 接口参数加密传输
    Java 三种方式实现接口校验
    Spring AOP实现 Bean字段合法性校验
    RabbitMQ进程结构分析与性能调优
  • 原文地址:https://www.cnblogs.com/shengrui/p/3416693.html
Copyright © 2011-2022 走看看