淘宝网站打算找人做,哈尔滨专业制作网站,铁西网络建设,河北青山建设集团有限公司网站再回看第一遍通读后的笔记#xff0c;感觉还有很多的细节需要一一攻克,。
mp4的封装格式#xff0c;解析方式。 flv的封装格式#xff0c;解析方式。 ts的封装格式#xff0c;解析方式。
第四章 封装和解封装
4.2 视频文件转flv #xff08;头文件和文件内容#xff0…再回看第一遍通读后的笔记感觉还有很多的细节需要一一攻克,。
mp4的封装格式解析方式。 flv的封装格式解析方式。 ts的封装格式解析方式。
第四章 封装和解封装
4.2 视频文件转flv 头文件和文件内容(直播点播场景)
文件头 (flv标签文件版本音频视频标记数据偏移等)
文件内容FLVTAG headertag排列方式 body (实际flvtag格式)
有三种tagType :音频视频脚本数据
ffmpeg -i ac3.mp4 -c copy -f flv out.flv
注意有没有报错ac3音频不支持flv
ffmpeg -i ac3.mp4 -vcodec copy -acodec aac -f flv out.flv
把ac3 音频转成aac进行封装到flv
生成关键索引flv (yamdi工具或者ffmpeg)
ffmpeg -i test.mp4 -c copy -f flv -flvflags add_keyframe_index out1.flv
flv分析工具FlvParse, FlvAnalyzer,ffprobe
ffprobe.exe -v trace -i out1.flv
可以分析到flv中存储的数据存储keyframe 关键帧的位置和时间戳。
4.3 视频文件转MPEG-TS 分割小块使用FEC技术
TS分析比较简单主要分析PES层TS层的头部
MPEG-TS muxer封装相关参数
MPEG-TS 格式分析工具EasyICE, DVB Inspector
4.4 视频文件转HLS (http实时流m3u8支持加密)
从apple官网获取信息。
流分解为一连串基于htttp的小文件。
扩展的M3u列表描述信息ts文件实际流。
m3u8 文件标签版本分片时长切片序列每个分片等。。。
hls muxer封装相关参数
ffmpeg.exe -i test.mp4 -c copy -f hls -bsf:v h264_mp4toannexb out2.m3u8
h264_mp4toannexb 是MPEG-TS要求的码流封装格式h.264 Annex B标准格式
ffmpeg.exe -i test.mp4 -c copy -f hls -bsf:v h264_mp4toannexb -start_number 300 out2.m3u8
设置第一个分片的序列号 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 testsrc2s176x144:r15 -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推流使用。
多码率hls
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.m3u84.5:视频文件切片 segment (ss, -t)
segment_format 指定切片的格式。
segment_list和segment_list_type 指定切片索引列表。 ffconcatflatcsvm3u8格式文件索引
reset_timestamps 设置切片时间戳归零。
segment_times 按照时间点切片
ss和t配合output_ts_offset指定输出的start_time
ffmpeg.exe -i test.mp4 -ss 8 -t 10 -output_ts_offset 120 out6.mp4 (开始输出的时间已经变了第120s)
4.6:提取AACh264, h265等流
-vn /-an / -an -bsf hevc_mp4toannexb(转成标准的annex B格式)
4.7关注系统资源
第五章编码与转码
5.1 h264预设参数编码优化控制关键帧设置内部参数控制码率设置可变恒定
5.2硬件优化可以试试 NVIDIA GPU硬编解码intel QSV树莓派macOS
5.3输出MP3,相关参数设置编码质量设置平均码率编码ABR
5.4输出AAC (FDK-AACCBR,VBR,(LCHEHEv2) )
5.6系统资源
第六章流媒体技术
6.1 rtmp(tcp)
6.2 rtsp(tcp、udp)
6.3 http流
6.4 tcp/udp流
6.5 多路流tee
6.6 自适应码率流DASH,HLS,HDS
第七章bitstream过滤器
7.1 avcodec解析器parser和bitstream的区别
7.2 ADTS和ASC AAC格式处理 aac_adtstoasc
7.3 Annex B和AVCC (h265(HEVC)/h264(AVC)格式处理) mp4toannexb
hevc设置metadata的过滤器 hevc_metadata
7.4 PPS SPS VPS 存储位置 dump_extra
7.5 trace_headers 码流分析工具是头部信息
例如需要获取pps sps的相关信息
7.6 filter_units 视频处理NALU信息
第八章滤镜 (AVFilter)
8.1 滤镜表达式
8.3 相关滤镜练习
8.3.1 文字水印图片水印
8.3.2 画中画
8.3.3 多宫格
8.3.4 视频字母
ASS字母写入视频
8.3.5 3D相关处理
8.4 视频截图
8.4.1 vframes 参数截取一张图片
8.4.2 fps滤镜定时获取图片
8.5 音频滤镜多声道
8.5.1 双声道合并单声道
8.5.2 双声道提取
8.5.3 双声道转双音频流
8.5.4 单声道转双声道
8.5.5 两个音频源合并双声道
8.5.6 多个音频合并为多声道
8.6 音频音量
8.6.1 音频音量获得
8.6.2 音频波形单声道多声道
8.7 生成测试源数据
音频测试流
视频测试流
8.8 音视频倍速处理
atempo 音频速度处理
setpts 视频速度处理
8.9 云剪辑相关技术
定格帧
透明视频兼容透明处理
隔行交错视频处理
HDR视频兼容处理视频新标准
雪碧图和webVTT
缩略图
filter_complex 复杂渲染可以汇总上面的指令
色度抠图蒙版抠图调色透明度调整
动态缩放
画质监测 psnr ssim libvmaf计算等
滤镜动态调整zmq
深度学习dnn_processing 超分去雨去雾等处理 DNN环境部署及深度学习模拟文件
第九章采集设备
linux,macOS,windows音视频采集设备查看和使用。