ffmpeg 命令笔记
个人常用命令笔记,非公开教程
旋转视频
直接复制流
ffmpeg -i "输入文件" -c copy -metadata:s:v:0 rotate=90 "输出文件"
rotate=90表示旋转90度 也可写入180或270的值
重新编码流
ffmpeg.exe -i "1.mp4" -c:v libx264 -preset veryslow -crf 24 -x264opts ref=6:deblock=1:1:1keyint=30:min-keyint=10 -vf "transpose=2" -c:a copy "output.mkv"
编码参数为个人常用参数 非默认参数
重新编码视频和音频并且设置参数 + 缩放画面分辨率
ffmpeg.exe -y -i "输入.mkv" -f wav - | nae.exe -he -br 64000 -ignorelength -if - -of "temp.m4a"
ffmpeg.exe -y -i "输入.mkv" -c:v libx264 -preset veryslow -crf 24 -bf 6 -refs 6 -qcomp 0.5 -aq-mode 2 -aq-strength 0.8 -psy-rd 0.3:0 -deblock 1:1 -x264opts min-keyint=1 -vf "scale=1280:720" -an "temp.m4v"
ffmpeg.exe -y -i temp.m4v -i temp.m4a -map_chapters -1 -c copy "输出.mp4"
nae.exe 是neroAAC编码器 ffmpeg 因为协议问题不能自带这个 所以只能外置
ffmpeg (ffprobe)分析文件关键帧时间点
ffprobe -loglevel error -skip_frame nokey -select_streams v:0 -show_entries frame=pkt_pts_time -of csv=print_section=0 "input.mp4"
简化输出信息
ffmpeg.exe -hide_banner
加上这个参数以后 输出会清爽很多
FFmpeg用于处理,FFprobe用于查看信息
查看文件简单信息:
ffprobe in.mp4
查看封装信息:
ffprobe -show_format in.mp4
查看音视频轨道信息(包含所有音视频参数):
ffprobe -show_streams in.mp4
打印每帧信息:
ffprobe -show_frames in.mp4
mp4在线播放优化(移动moov数据块到mdat块前面):
ffmpeg -i ./old.mp4 -movflags faststart -c copy new.mp4
mp4不适合长视频,cdn支持不好,也可能会播放中断。总体不如flv文件好用,flv.js项目可以帮助 flv 在前端更好的播放
flv重新建立跳转索引:
ffmpeg -i old.flv -c copy -f flv -flvflags add_keyframe_index new.flv