• FFmpeg命令行详解


    ffmpeg命令行

    A command line tool to convert multimedia files between formats.

    名称命令解释
    查看当前设备输入信息ffmpeg -f avfoundation -list_devices true -i “”
    Mac设备录制ffmpeg -f avfoundation -i “:” output.mkv
    采集屏幕ffmpeg -f avfoundation -i 1 -r 15 out.yuv-i (0 摄像头、1 自带屏幕 、2 外接屏幕-1、 3 外接屏幕-2)
    yuv采样视频分辨率和颜色空间转换ffmpeg -video_size 2560x1440 -pix_fmt uyvy422 -i out.yuv -s 1920x1080 -pix_fmt yuv420p out.yuv
    编码视频帧率控制ffmpeg -r 80 -i input output ffmpeg -i input -r 20 output-r 所在位置不同,决定其参数是对输入视频还是输出视频起作用。放在输入前,降低fps,增加视频时长:使其输出文件的时长分别为原来的一半和两倍,即播放速度为原来的两倍和一半。放在输入后,降低fps,视频时长不变,丢帧,质量变差:这样输出文件的码流理论上为输入文件的一半左右。
    Mac视频硬编码ffmpeg -r 5 -s 1920x1080 -i ppt.yuv -b 1000000 -profile high -coder cabac -vcodec h264_videotoolbox -y out.h264
    生成带有移动矢量的视频ffmpeg -flags2 +export_mvs -i input.mp4 -vf codecview=mv=pf+bf+bb output.mp4
    计算两个YUV的psnrffmpeg -s 720x1280 -i input.yuv -s 720x1280 -i input2.yuv -lavfi psnr=“psnr.log” -f null -
    计算两个视频的 ssimffmpeg -i 1.mp4 -i o.mp4 -lavfi ssim=“stats_file=ssim.log” -f null -
    截取原视频中其中一段视频ffmpeg -s 720x1280 -i input.yuv -ss 00:00:00 -to 00:00:40 output.yuv将文件从 50 秒开始剪切 20 秒,输入到新文件,-ss 是指定时间,-t 是指定时长
    视频去水印ffmpeg -i test.mp4 -vf delogo=x=?:y=?:w=?:h=?:show=? out.mp4x,y logo的位置;w,h logo的宽高;show当设置为1时,将在屏幕上绘制一个绿色矩形,以简化查找正确的x、y、w和h参数。默认值为0。
    把视频每一帧转换成图片ffmpeg -i input.mp4 ‘out.bmp’
    视频转gifffmpeg -i small.mp4 small.gif
    视频剪切ffmpeg -i input.mp4 -vf crop=410:720 -y out.mp4crop的参数格式为w: h: x :y;w和h为输出视频的宽和高;x和y是视频中的某点,将该点作为基准点,向右下进行裁剪得到输出视频,如果x和y不写,则默认居中。
    旋转transposeffmpeg -i input.jpg -vf transpose=2 -y out.jpg旋转后没有黑底;transpose=0 逆时针旋转90°,然后垂直翻转; transpose=1 顺时针旋转90°; transpose=2 逆时针旋转90°; transpose=3 顺时针旋转90° 然后垂直翻转。
    旋转rotateffmpeg -i input.jpg -vf rotate=PI/3 -y out.jpg旋转后带有黑底,视频/图片的原始宽高并没有改变。
    从MAV音频文件导出PCM裸数据ffmpeg -i input.wav -acodec pcm_s16le -f s16le output.pcm

    ffprobe 命令行

    A simple multimedia stream analyzer.
    usage: ffprobe [OPTIONS] [INPUT_FILE]

    名称命令解释
    帮助ffprobe --help
    查看视频帧frame信息ffprobe -show_frames input.h264
    查看视频流streams信息ffprobe -show_streams input.h264
    查看多媒体数据包信息ffprobe -show_packets input.flv包含的字段主要有codec_type、stream_index、pts、dts、duration、size、pos等
    查看多媒体的封装格式ffprobe -show_format output.mp4包含的字段主要有filename、nb_streams、format_name、duration、size、bit_rate等
    格式输出定义ffprobe -of xml/ini/json/csv/flat -show_streams input.flv

    ffplay命令行

    A simple media player based on SDL and the FFmpeg libraries.
    usage: ffplay [option] input_file

    名称命令解释
    Show licenseffplay -L
    帮助ffplay --help
    查看运动矢量mv信息ffplay -flags2 +export_mvs output.h264 -vf codecview=mv=pf
    宏块MB信息打印到本地txt中ffplay -debug mb_type thinkvision-2560x1440.mp4 2>mv.txt
    播放yuvffplay -f rawvideo -video_size 2560x1440 -pixel_format uyvy422 out.yuv
    ffplay 播放 aacffplay -f f32le -ac 1 -ar 44100 test.aac-ac指定通道个数,-ar指定采样率
    ffplay 播放 rgbffplay -f rawvideo -pixel_format rgb24 -video_size 480x480 texture.rgb
    指定窗口大小播放ffplay -x 400 output.mp4指定播放窗口500像素大小
    指定时长播放ffplay -ss 30 -t 10 input.mp4从视频的第30秒开始播放,持续10秒
    显示播放窗口标题自定义ffplay -window_title “ffmpeg” output.mp4
    数据可视化ffplay -showdata 1 output.mp3音频数据以音频波形的形式显示

    批量转码/转封装脚本(并删除原始文件)

    #!/bin/bash
    for i in *.mkv;
     do echo"${i%.*}.mp4"; 
     ffmpeg -i "$i" -codec copy "${i%.*}.mp4";
     rm -rf "${i%.*}.mkv";
     done
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  • 相关阅读:
    Docker Compose
    《白皮书》:人脸识别系统的组成及面临的安全风险
    2022杭电多校 第一场 个人题解(ABCDIHK)
    数据集-特征降维
    [C#基础训练]FoodRobot食品管理部分代码-2
    【银河麒麟系统】备份还原工具显示“备份分区空间不足,请删除过期或者不需要的备份”解决方法
    使用VirtualBox安装Ubuntu系统【保姆级】
    前端请求patch接口,只传入已修改字段值的字段
    创建HTTP请求的几种方式
    【CV】第 2 章:使用本地二进制模式的内容识别
  • 原文地址:https://blog.csdn.net/yanceyxin/article/details/126453647