个人常用命令笔记,非公开教程

旋转视频

直接复制流

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