![]() ![]() The common way source files are organized is to have one file for plugin Libobs/graphics/graphics.h – Used for graphics renderingĬommon Directory Structure and CMakeLists.txt Libobs/obs-properties.h – Used for generating properties for Libobs/obs-data.h – Used for managing settings for libobs Libobs/obs-service.h – Used for implementing services in Libobs/obs-encoder.h – Used for implementing encoders in Libobs/obs-output.h – Used for implementing outputs in plugin Libobs/obs-source.h – Used for implementing sources in plugin This file automatically includes the following files: ![]() Libobs/obs-module.h – The primary header used for creating plugin These are some notable headers commonly used by plugins: Writing your first plugin? We provide a basic template plugin Plugins can implement sources, outputs, encoders, and services. The ability to captureĪnd/or output audio/video, make a recording, output to an RTMP stream,Įncode in x264 are all examples of things that are accomplished via Array Output Serializer Structure (struct array_output_data)Īlmost all custom functionality is added through plugin modules, whichĪre typically dynamic libraries or scripts.Serializer Structure (struct serializer).Circular Buffer Structure (struct circlebuf).Raw Frame Data Structure (encoder_frame).Encoder Packet Structure (encoder_packet).Encoder Definition Structure (obs_encoder_info).Output Definition Structure (obs_output_info).Scene Item Order Info Structure (*obs_sceneitem_order_info).Scene Item Crop Structure (obs_sceneitem_crop).Scene Item Transform Structure (obs_transform_info).Source Definition Structure (obs_source_info). ![]() Initialization, Shutdown, and Information.Saving/Loading Objects and Object Management.Common Directory Structure and CMakeLists.txt.I experimented with the -rtbufsize figure, 100M seemed enough, it might be too much but most people have plenty of RAM. The bit -f dshow -video_size 1280x720 -rtbufsize 100M -i video="DroidCam Video" -thread_queue_size 512 -f dshow -i audio="Microphone (DroidCam Audio)"Īnd -pix_fmt nv12 covers the different input compared to virtualcam. With a bit more thinking about it this worked better with the intel encoder, having removed some of the nvidia specific switches and also got the aspect ratio and resolution right.Ĭ:\ffmpeg\bin\ffmpeg -f dshow -video_size 1280x720 -rtbufsize 100M -i video="DroidCam Video" -thread_queue_size 512 -f dshow -i audio="Microphone (DroidCam Audio)" -vcodec hevc_qsv -bf 0 -pix_fmt nv12 -b:v 220k -r 15 -preset slow -profile:v main -acodec aac -aac_coder twoloop -ar 48000 -ac 1 -b:a 32k -f mpegts -muxrate 325k -streamid 0:256 -streamid 1:257 -metadata service_provider="G0MJW" -metadata service_name="Mike" -max_delay 2500000 -pcr_period 40 -pat_period 0.4 "udp://127.0.0.1:1234?pkt_size=1316" I just used the same ones which isn't likely to be right but surprisingly works.Ĭ:\ffmpeg\bin\ffmpeg -f dshow -i video="DroidCam Video" -thread_queue_size 512 -f dshow -i audio="Microphone (DroidCam Audio)" -vcodec hevc_qsv -s 1280x720 -bf 0 -pix_fmt yuv420p -b:v 220k -r 15 -preset slow -profile:v main -rc cbr_hq -rc-lookahead 5 -acodec aac -aac_coder twoloop -ar 48000 -ac 1 -b:a 32k -f mpegts -muxrate 325k -streamid 0:256 -streamid 1:257 -metadata service_provider="G0MJW" -metadata service_name="Mike" -max_delay 2500000 -pcr_period 40 -pat_period 0.4 "udp://127.0.0.1:1234?pkt_size=1316" I doubt it is as good but it comes for free. Note I have no idea what the optimum settings might be for the intel vs nvidia. It seems to be working fine with the intel codec on my laptop. I didn't have my Nvidia PC to hand to test this so I am using hevc_qsv, the intel codec build into modern CPUs. I have discovered a possible solution in DroidCam. OBS record almost does what we need, but it doesn't pass all the parameters to the codec and multiplexer. There is an example on the ffmpeg TS output. I don't know how to write an OBS plugin and don't have time to learn how at the moment. What is really needed though is a DATV plugin for OBS that implements natively all those things we use the virtual camera and a script/DATVEasy to do and simply streams the data for the pluto. Perhaps if a lot of us posted about this on the OBS forum it might happen as I expect it isn't a huge addition. My fear is the plugin development will stop now there is an official plugin. OBS has its own virtual camera, but when I queried this the developers didn't understand the need to virtual sound to go with it.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |