本文整理汇总了C++中PacketStream::attachSource方法的典型用法代码示例。如果您正苦于以下问题:C++ PacketStream::attachSource方法的具体用法?C++ PacketStream::attachSource怎么用?C++ PacketStream::attachSource使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PacketStream
的用法示例。
在下文中一共展示了PacketStream::attachSource方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main(int argc, char** argv)
{
Logger::instance().add(new ConsoleChannel("debug", Level::Trace)); // Debug
{
// Create a PacketStream to pass packets
// from device captures to the encoder
PacketStream stream;
av::EncoderOptions options;
options.ofile = OUTPUT_FILENAME;
options.oformat = OUTPUT_FORMAT;
options.iformat.audio.enabled = false; // enabled if available
options.iformat.video.enabled = false; // enabled if available
// Create a device manager instance to enumerate system devices
av::Device device;
av::DeviceManager devman;
// Create and attach the default video capture
av::VideoCapture video;
if (devman.getDefaultCamera(device)) {
LInfo("Using video device: ", device.name)
video.openVideo(device.id, { 640, 480 });
video.getEncoderFormat(options.iformat);
stream.attachSource(&video, false, true);
}
// Create and attach the default audio capture
av::AudioCapture audio;
if (devman.getDefaultMicrophone(device)) {
LInfo("Using audio device: ", device.name)
audio.openAudio(device.id, { 2, 44100 });
audio.getEncoderFormat(options.iformat);
stream.attachSource(&audio, false, true);
}
// Create and attach the multiplex encoder
av::MultiplexPacketEncoder encoder(options);
encoder.init();
stream.attach(&encoder, 5, false);
// Start the stream
stream.start();
// Keep recording until Ctrl-C is pressed
LInfo("Recording video: ", OUTPUT_FILENAME)
waitForShutdown([](void* opaque) {
reinterpret_cast<PacketStream*>(opaque)->stop();
}, &stream);
}
// Logger::destroy();
return 0;
}