该参数值仅用于参考 , 如果需要开发 视频 根据 旋转元数据 自动旋转的功能 , 只需要阅读 ffplay 程序的 处理 -autorotate 参数 的源码即可 ;
ffplay 命令 的 -autorotate
参数 用于 设置自动旋转视频 , 文件中的 元数据 中有视频的方向 , 如 横屏 / 竖屏 ; 该参数值 默认 1 , 自动旋转视频 默认 是 打开的 ;
播放 1920 x 1080 像素的 视频 ,
使用 手机 / 摄像机 录制视频时 会 将 录制视频的 方向 设置到 元数据 中 , 一般 会 根据设备的 自然方向 来设置视频的旋转元数据 ;
-autorotate
参数值 只能是 0 或 1 :
-autorotate 1
: 当 -autorotate
参数值设置为 1 时 , ffplay 播放视频时 会根据视频文件中的 旋转元数据 自动调整视频的显示方向 ;-autorotate 2
: 当 -autorotate
参数值 设置为 0 时 , ffplay 播放视频时 会忽略旋转元数据 , 按视频的原始像素方向播放 ;执行
ffplay -autorotate fengjing.mp4
命令 , 不设置值 , 就是使用默认值 1 ;
ffplay 命令的 -framedrop
参数 用于 设置 丢弃 失去同步的 视频帧 , 当 视频帧 的 播放速度 与 主时钟 不同步时 , 可以丢弃 视频帧 ;
默认状态下 , -framedrop
参数值为 -1 , 此时
执行
ffplay -framedrop fengjing.mp4
命令 , framedrop 的参数值被设置为 1 , 无论同步方式是什么
都会 丢弃 失去同步的视频帧 , 可以有效 防止视频播放 卡顿 ;
ffplay 命令的 -noframedrop
参数 用于 设置 不丢弃 失去同步的 视频帧 , 当 视频帧 的 播放速度 与 主时钟 不同步时 , 也不可以丢弃 视频帧 ;
显然 , 该操作会导致 视频播放卡顿的情况 ;
执行
ffplay -noframedrop fengjing.mp4
命令 , framedrop 的参数值被设置为 0 , 无论同步方式是什么
都不会 丢弃 失去同步的视频帧 , 会导致 视频播放 卡顿 , 但可以保证 视频的 完整显示 和 每一帧显示 ;
ffplay 命令的 -infbuf
参数 用于 设置输入缓冲区 ;
在 流媒体播放 或 处理实时数据 时 , 缓冲区的大小 和 管理方式 对于播放的流畅性和性能至关重要 ;
使用 -infbuf
参数 设置 输入缓冲区 , 会增加播放开始的延迟 , 因为播放器会在开始播放前尝试填充缓冲区 ; 在 开始 播放 时 , 能够 很好地 应对 网络波动 和 数据传输的不稳定性 ;
-infbuf
参数 不是一个独立使用的参数 , 该参数 经常 与 -probesize
和 -analyzeduration
等参数一起使用 ,
-probesize
参数指定了 ffplay 在尝试确定 输入流格式 时应该读取的 数据量 , 在本示例中 设置为 50MB , 增加这个值可以让 ffplay 对输入流进行更深入的分析 , 这有助于正确识别某些复杂的媒体格式 , 但也会增加启动时的延迟 ;-analyzeduration
参数 通常用于限制输入流的分析时长 , 单位是 微秒 μs ; 本示例中设置 100000 微秒 , 也就是 100 毫秒 , 0.1 秒 ;执行
ffplay -infbuf -probesize 50M -analyzeduration 100000 fengjing.mp4
命令 , 设置 初始读取 50MB 的数据 , 分析时长 0.1 秒 ;
阅读量:513
点赞量:0
收藏量:0