资源

各格式视频文件: https://download.blender.org/demo/movies/
各格式视频文件(只含视频流):https://test-videos.co.uk/
VLC音视频播放器:https://www.videolan.org/vlc/
VLC 是一款自由、开源的跨平台多媒体播放器及框架,可播放大多数多媒体文件,以及 DVD、音频 CD、VCD 及各类流媒体协议。
本文章绑定有下载好的一些视频文件,可以直接下载。

ffmpeg安装可以参考之前的文章【C++音视频】在mac搭建ffmpeg开发环境(内附资源)
安装后build里面的bin目录里就是ffmepg命令了

1. 显示文件信息

语法:

ffprobe <参数> <输入文件名>

<参数>:

-show_streams 显示详细流信息
-show_packets 显示packet帧信息
-show_frames 显示frame帧信息
无参数则显示基本信息,比如基本流信息

2. 查询编码能力

语法:

ffmpeg <参数>

<参数>:

-formats 支持的容器格式
-decoders 支持的解码器
-encoders 支持的编码器
-sample_fmts 支持的采样格式
-pix_fmts 支持的像素格式
-hwaccels 支持的硬件加速

3. 转换文件格式

语法:

ffmpeg -i <输入文件名> <参数> <输出文件名>

<参数>:

-c:a pcm_s16le 转换音频流(a)编码方式©为pcm_s16le
-b:a 128k 转换音频流码率为128kb/s
-ar 48000 转换音频流采样率为48000/s
-map 0: a 输出输入文件音频流
-profile:v main 转换视频流编码档位为main
-vf “format=yuv420p10le” 转换视频流像素格式为yuv420p10le
-color_range tv 转换颜色范围为tv
-color_primaries bt2020 转换颜色为bt2020
-color_trc arib-std-b67 转换传输算法为arib-std-b67
-colorspace bt2020nc转换颜色空间为bt2020nc

arib-std-b67是HLG(Hybrid Log-Gamma)传输函数的标识,它是一种HDR标准,HDR高亮度范围需要处理范围更广的亮度映射函数

bt2020nc表示非恒亮度(non-constant luminance)的BT.2020色彩空间。BT.2020是超高清电视(UHDTV)使用的色彩空间,具有更宽的色域。这里的“nc”代表非恒亮度,这是目前常用的方式。

示例-转换到超高清视频:
需要编码算法(档位)、像素格式、色彩和传输函数一起

fmpeg -i input.mp4 -c:v libx265 -profile:v main10 -pix_fmt yuv420p10le -color_range tv
-colorspace bt2020nc -color_trc arib-std-b67 -color_primaries bt2020 output.mp4
Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐