再回看第一遍通读后的笔记,感觉还有很多的细节需要一一攻克,。
mp4的封装格式,解析方式。
flv的封装格式,解析方式。
ts的封装格式,解析方式。
文件头 (flv标签,文件版本,音频,视频标记,数据偏移等)
文件内容(FLVTAG) = header(tag排列方式) +body (实际flvtag格式)
有三种tagType :音频,视频,脚本数据
注意有没有报错,ac3音频不支持flv
把ac3 音频转成aac进行封装到flv
ffprobe.exe -v trace -i out1.flv
可以分析到,flv中存储的数据,存储keyframe 关键帧的位置和时间戳。
TS分析比较简单,主要分析PES层,TS层的头部
从apple官网获取信息。
流分解为一连串基于htttp的小文件。
扩展的M3u列表描述信息,ts文件实际流。
h264_mp4toannexb 是MPEG-TS要求的码流封装格式,h.264 Annex B标准格式
设置第一个分片的序列号 300
-hls_time 10 设置转码切片长度10s,gop不均匀导致时长不均匀。
-hls_list_size 3 可以控制m3u8列表中TS分片的个数。
-hls_wrap 3 分片号等于这个时则回滚
-hls_base_url http://192.168.0.1/live/ 设置写入ts切片文件的路径
-hls_segment_filename test_outpur-%d.ts 切片文件名设置
-hls_flags 配合子参数,正常文件索引,删除过期切片,等各种设置
delete_segment 删除不在m3u8列表中的旧文件
ffmpeg -f lavfi -i testsrc2=s=176x144:r=15 -vcodec libx264 -g 30 -r:v 15 -f hls -hls_time 2 -hls_list_size 4 -hls_flags delete_segments -t 30 out5.m3u8
raund_durations 子参数,切片信息的duration为整数值
discont_start 子参数,切片信息前插入discontinuity 用于相邻ts不连续切片
omit_endlist 子参数,文件末尾不加endlist 标签
split_by_time 子参数,根据hls_time参数设定的数值作为秒数参考对ts进行切片,不一定遇到关键帧。 (影响首帧画面问题)
strftime 子参数,设置hls切片文件名,m3u8文件切片信息文件名。 用生成ts切片当前系统时间。
method 子参数,method put 设置上传http的方式,配合nginx,推流使用。
ffmpeg -i test.mp4 -b:a:0 32k -b:a:1 64k -b:v:0 1000k -map 0:a -map 0:a -map 0:v -f hls -var_stream_map "a:0,agroup:aud_low,default:yes,language:ENG a:1,agroup:aud_high,language:CHN v:0,agroup:aud_low" -master_pl_name master.m3u8 -t 30 out%v.m3u8
segment_format 指定切片的格式。
segment_list和segment_list_type 指定切片索引列表。 (ffconcat,flat,csv,m3u8格式文件索引)
reset_timestamps 设置切片时间戳归零。
segment_times 按照时间点切片
ffmpeg.exe -i test.mp4 -ss 8 -t 10 -output_ts_offset 120 out6.mp4 (开始输出的时间已经变了,第120s)
-vn /-an / -an -bsf hevc_mp4toannexb(转成标准的annex B格式)
hevc设置metadata的过滤器 hevc_metadata
例如需要获取pps sps的相关信息
ASS字母写入视频
8.5.1 双声道合并单声道
8.5.2 双声道提取
8.5.3 双声道转双音频流
8.5.4 单声道转双声道
8.5.5 两个音频源合并双声道
8.5.6 多个音频合并为多声道
8.6.1 音频音量获得
8.6.2 音频波形(单声道,多声道)
音频测试流
视频测试流
atempo 音频速度处理
setpts 视频速度处理
定格帧
透明视频兼容(透明处理)
隔行交错视频处理
HDR视频兼容处理(视频新标准)
雪碧图和webVTT
缩略图
filter_complex 复杂渲染(可以汇总上面的指令)
色度抠图(蒙版抠图,调色,透明度调整)
动态缩放
画质监测 psnr ssim libvmaf计算等
滤镜动态调整(zmq)
深度学习(dnn_processing 超分,去雨,去雾等处理) DNN环境部署及深度学习模拟文件
linux,macOS,windows音视频采集设备查看和使用。