目录

工欲善其事

实践出真知

活跃标签: linux java mysql 待分类 js windows win10 springboot pdf 电路 docker idea esp32 vue macOS nginx Arduino git maven 硬件资料

存档:

X

FFmepg 转码播放等使用说明

话说几乎所有的视频播放软件都是ffmpeg的套壳

使用ffmpeg播放视频

ffplay [选项] ['输入文件']

  1. 主要选项
'-x width'        强制以 "width" 宽度显示
'-y height'       强制以 "height" 高度显示
'-an'             禁止音频
'-vn'             禁止视频
'-ss pos'         跳转到指定的位置(秒)
'-t duration'     播放 "duration" 秒音/视频
'-bytes'          按字节跳转
'-nodisp'         禁止图像显示(只输出音频)
'-f fmt'          强制使用 "fmt" 格式
'-window_title title'  设置窗口标题(默认为输入文件名)
'-loop number'    循环播放 "number" 次(0将一直循环)
'-showmode mode'  设置显示模式
可选的 mode :
'0, video'    显示视频
'1, waves'    显示音频波形
'2, rdft'     显示音频频带
默认值为 'video',你可以在播放进行时,按 "w" 键在这几种模式间切换
'-i input_file'   指定输入文件
  1. 一些高级选项
'-sync type'          设置主时钟为音频、视频、或者外部。默认为音频。主时钟用来进行音视频同步
'-threads count'      设置线程个数
'-autoexit'           播放完成后自动退出
'-exitonkeydown'      任意键按下时退出
'-exitonmousedown'    任意鼠标按键按下时退出
'-acodec codec_name'  强制指定音频解码器为 "codec_name"
'-vcodec codec_name'  强制指定视频解码器为 "codec_name"
'-scodec codec_name'  强制指定字幕解码器为 "codec_name"
  1. 一些快捷键
'q, ESC'            退出
'f'                 全屏
'p, SPC'            暂停
'w'                 切换显示模式(视频/音频波形/音频频带)
's'                 步进到下一帧
'left/right'        快退/快进 10 秒
'down/up'           快退/快进 1 分钟
'page down/page up' 跳转到前一章/下一章(如果没有章节,快退/快进 10 分钟)
'mouse click'       跳转到鼠标点击的位置(根据鼠标在显示窗口点击的位置计算百分比)

转码

  • mp4
ffmpeg -i 输入文件 -c:v libx265 输出文件
  • 如果cpu是11代之后可以使用GPU加速的hevc_qsv,如下效率大约是纯cpu压缩的2.5倍左右
ffmpeg.exe -i "D:\周星驰《功夫》.mp4" -c:v hevc_qsv -c:a copy "D:\周星驰《功夫》_compress.mp4"

在此基础上,增加无损压缩。增加代码

ffmpeg.exe -i "D:\周星驰《功夫》.mp4" -c:v hevc_qsv -c:a copy "D:\周星驰《功夫》_compress.mp4" -x265-params lossless=1

Encode AVI to h.264 Video (Software Encoding)

ffmpeg -i input.avi -c:v libx264 output.mp4

Encode AVI to h.265 Video (Software Encoding)

ffmpeg -i input.avi -c:v libx265 output.mp4

Encode AVI to h.264 Video (AMD GPU Encoding)

ffmpeg -i input.avi -c:v h264_amf output.mp4

Encode AVI to h.265 Video (AMD GPU Encoding)

ffmpeg -i input.avi -c:v hevc_amf output.mp4

Encode AVI to h.264 Video (NVIDIA GPU Encoding)

ffmpeg -i input.avi -c:v h264_nvenc output.mp4

Encode AVI to h.265 Video (NVIDIA GPU Encoding)

ffmpeg -i input.avi -c:v hevc_nvenc output.mp4

截取

ffmpeg -i in.mp4 -ss 00:00:35 -t 00:05:04 -vcodec copy -acodec copy out.mp4

如果是从头开始截取可以省掉 -ss 参数,注意-t参数是指截取的总时长


标题:FFmepg 转码播放等使用说明
作者:llilei
地址:http://solo.llilei.work/articles/2024/07/28/1722133144778.html