没有合适的资源?快使用搜索试试~ 我知道了~
OBS (27版本) 中音视频数据流向总结
需积分: 50 4 下载量 126 浏览量
2022-05-26
09:32:36
上传
评论
收藏 87KB PDF 举报
温馨提示
试读
1页
数据流向图
资源详情
资源评论
资源推荐
media
source
video capture thread
window
source
async_frames
list
obs_graphics_thread
async input source ?
Tick
cur_async_frame
GPU convert
async_textures
async_texrender
render source
prepare canvas
Tick
render source
output canvas
using raw
encode ?
GPU convert
Save YUV
convert_textures output_texture
video_output::cache
using gpu
encode ?
gpu-encoder-queue
Copy texture
Save texture
render_texture
video_thread gpu_encode_thread
wait signal
read texture
wait signal
read raw frame
video_output::inputs
• start_raw_video
• stop_raw_video
receive_video
callback
...
default_raw_video_callback do_encode
encoder module
•
libx264/5
•
media fundation
H.264
•
QSV
•
AMF
•
NVENC
•
libfdk-aac
•
ffmpeg-aac
•
mediafundation aac
send_off_encoder_pac
ket
interleaved_packets
avavavav
encoder->callbacks • obs_encoder_start_internal
• obs_encoder_stop_internal
interleave_packets
callback
... ...
• encode_texture ( for gpu encode )
• encode ( for raw a/v )
audio_thread
read front packet
output::encoded_packet
tick audio for sources
obs_source_audio_render
mixer root channel source
audio_mix :: inputs
• audio_output_connect
• audio_output_disconnect
receive_audio
callback
... ...
for
gpu_encoders
• start_gpu_encode
• stop_gpu_encode
obs_view_t::channels
[MAX_CHANNELS ]
• scene transition source
• mic audio source
• desktop audio source
• ....
• scene transition source
• scene source
• all audio source
audio_output_buf
1024 frames
audio_input_buf
circle buffer
audio_output::mixes
[track_count]
plugin::tick
plugin::render
plugin::mixer_audio
called
get_closest_frame
obs_source_output_video
push audio
obs_source_output_audio
resample audio
apply audio filter
storage audio
source->audio_cb_list
called
• obs_source_add_audio_capture_callback
• obs_source_remove_audio_capture_callback
audio monitor
cb
...
volumn mete calc
cb
source
audio capture thread
obs_source_update_async_video
yes
no
yes
yes
no
update-semaphore
gpu-encode-semaphore
texture encode
普通硬编码(video_thread)
GPU -> CPU 【libobs】 --> 【encode module】 CPU -> GPU -> encode
纹理硬编码(gpu_encode_thread)
GPU 【libobs --> 【encode module】 GPU -> encode
record output
保证音视频时间戳单调递增
render
start from
channel source
obs_view_t::channels
[MAX_CHANNELS ]
ffmpeg mux.exelibRTMP
IPC (pipe)
stream output
check convert video (width/height/format)
output::raw_video
vcam output
Process of XXX.exe
Another process that added
"PRISM Camera"
prism-virtualcam-module64.dll
IPC (memory map)
felicityWSH
- 粉丝: 58
- 资源: 26
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 2022NOC软件创意编程赛项真题python小学高年级-决赛(有解析)
- mathml转换latex需要的xsl文件
- 2022NOC软件创意编程赛项真题图形化小学高年级-决赛赛(有解析)
- gbase驱动下载gbase-connector-java-8.3.81.53驱动下载
- 2022NOC软件创意编程赛项真题图形化小学低年级-决赛赛(有解析)
- InsightFace从青铜到王者,超大规模人脸识别的优雅解法
- python后端开发spider框架详解
- 基于 STM32 与 ESP8266 的智能家居系统源码.zip
- 毕业设计:基于SSM的mysql-个性化点餐配送系统(源码 + 数据库 + 说明文档)
- 基于matlab的鱼苗计数识别(GUI界面).zip代码57
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0