FFmpeg命令行记录

FFmpeg常用命令/参数

常用命令

  • ffmpeg -s:v 1920x1080 -r 25 -i input.yuv -vf scale=960:540 -c:v rawvideo -pix_fmt yuv420p out.yuv #

  • ffmpeg -s:v 1920x540 -r 25 -i updecode_1920x540_50.yuv -c:v libx265 out.h265 使用libx265编码器编码yuv数据

  • ffmpeg -i input.mp4 -vf crop=720:720:280:0 output.mp4 从 (280,0) 坐标处裁剪大小为720x720的视频

  • ffmpeg -i input_file -s 320*240 output_file 改变输出视频尺寸

  • ffmpeg -c:v hevc_cuvid -i input -f rawvideo out_3840x2160.RGB 硬件加速解码视频为原始RGB数据

  • -pix_fmt yuv_420p (yuv420p10le / yuv420p12le / rgb24) 设定原始数据格式

  • ffmpeg -i input.ts -s 4096x2160 -pix_fmt rgb24 out_4096x2160.rgb 解码视频为rgb24格式并设置size为4096x2160

  • ffmpeg -f rawvideo -pix_fmt rgb24 -s 4096x1080 -i out_Odd_4096x1080.RGB -r 59.94 -s 4096x1080 -b:v 50m -c:v hevc_nvenc out_Odd_4096x1080.avi 编码视频

  • ffmpeg -h encoder=libx264 查看编码器信息

  • ffmpeg -ss 00:03:00 -t 00:04:00 -i In_4K.UHDTV.HEVC.10bit.HDR.DD5.1-FLTTH.ts -s 4096x2160 -c:v libx265 -b:v 100m -r 50 -pix_fmt yuv420p AerialChina/out_4096x2160.ts -y 将10bit的HDR视频从第三分钟开始截取1分钟并转为8bit视频

  • ffmpeg -i test.mp4 -y -f image2 -s 960x540 test/%05d.jpg 按帧截取存为图片

  • ffmpeg -f image2 -i test\%05d.jpg -vcodec libx264 -r 25 -b 382k -pix_fmt yuv420p test.mp4

  • ffmpeg -i %8d.png -pix_fmt yuv420p -vsync 0 001.yuv -y 多张png图片合成yuv数据

  • ffmpeg -s:v 3840x2160 -c:v rawvideo -pix_fmt yuv420p10le -i 10bit.yuv -c:v rawvideo -pix_fmt gbrp10le gbrp10le_out.rgb 10bit yuv转rgb

  • ffmpeg -i 10021502.mp4 -vf "select=between(n\,84\,208)*not(mod(n\,4))" -vsync 0 ./pkl/image_%05d.jpg 抽帧

  • ffmpeg -i src.mp4 -i dst.mp4 -lavfi '[0:v]split=3[v1][v2][v3];[1:v]split=3[r1][r2][r3];[v1][r1]psnr=shortest=1;[v2][r2]ssim=shortest=1;[v3][r3]libvmaf=n_subsample=1:n_threads=8:model_path=bin/model/vmaf_v0.6.1.pkl:shortest=1' -f null - 2>result.log 1>/dev/null # 计算ssim,psnr,vmaf

  • ffmpeg -i src.mp4 -i dst.mp4 -lavfi '[0:v]split=2[v1][v2];[1:v]split=2[r1][r2];[v1][r1]psnr=shortest=1;[v2][r2]ssim=shortest=1' -f null - #计算psnr,ssim

  • ffmpeg -i src.png -f image2 -vcodec mjpeg -qmax 2 -qmin 1 -pix_fmt rgb24 dst.jpeg -y 使用mjpeg进行图像编码,控制编码质量

  • ffmpeg -start_number 01209600 -framerate 24/1 -i src_path/%8d.dpx -vf setsar=1:1 -vcodec hevc_nvenc -preset slow -cq:v 19 -pix_fmt yuv420p -r 24 -vtag hvc1 -y dst_path/video.mp4 dpx转mp4

视频编码

  • ffmpeg -s:v 1920x1080 -i BasketballDrive_000to049.yuv -c:v h264 -vframes 50 -qp 37 BasketballDrive_qp37_h264.h264 -psnr -y 1>>BasketballDrive_qp37_h264.txt 2>&1 264定qp编码
  • ffmpeg -i BasketballDrive_qp37_h264.h264 -pix_fmt yuv420p BasketballDrive_qp37_rec_h264.yuv -y 解码

视频截取

ffmpeg -i input.wmv -ss 00:00:30.0 -c copy -t 00:00:10.0 output.wmv   # 从30s开始截取10s
ffmpeg -i input.wmv -ss 30 -c copy -t 10 output.wmv
ffmpeg -i input.wmv -ss 30 -c copy -to 40 output.wmv  # 从30s截取到40s

视频拼接

  • ffmpeg -i noisy.mp4 -i denoise.mp4 -filter_complex "nullsrc=size=1280x360[base]; [0:v]scale=640x360,drawtext=fontcolor=white:fontsize=30:fontfile=/Library/Fonts/Arial.ttf:text='Origin':x=30:y=30[left]; [1:v]scale=640x360,drawtext=fontcolor=white:fontsize=30:fontfile=/Library/Fonts/Arial.ttf:text='HDR':x=30:y=30[right]; [base][left] overlay=shortest=1[tmp1]; [tmp1][right] overlay=shortest=1:x=640" -sws_flags bicubic demo0.mp4 #拼接视频并添加logo

常用参数

  • ffmpeg -pix_fmts 显示支持的像素格式
  • -b:v 64k 设置视频码率为64kbps (-b:a 设置音频)
  • -c:v h264_qsv
  • ffmpeg -hwaccels 显示硬编码器
  • -y 覆盖原文件
  • -an 去除声音
  • -ss 开始时间
  • -t 持续时间
  • -to 结束时间

ffprobe

  • ffprobe -v error -show_format -show_streams input.mp4 获取视频信息
  • ffprobe -show_format inputFile 获取视频封装信息
  • ffprobe -show_streams inputFile 获取音视频流信息
  • ffprobe -show_packets -select_streams v input | grep pts_time 获取视频pts
  • ffprobe -hide_banner -show_frames -i input | egrep pkt_pts 获取视频pts
  • ffprobe -v error -count_frames -select_streams v:0 -show_entries stream=nb_read_frames -of default=nokey=1:noprint_wrappers=1 inputFile 统计视频帧数
  • ffprobe -v error -select_streams v:0 -show_entries stream=r_frame_rate -of json inputFile 统计视频帧率

参考资料

ImageMagick

  • mogrify -format jpg *.webp # 批量格式转换,转换webp格式为png格式
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值