<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                [TOC] 雷神傳送門:[https://blog.csdn.net/leixiaohua1020/article/details/39702113](https://blog.csdn.net/leixiaohua1020/article/details/39702113) ## 概述 FFmpeg中有一個和多媒體設備交互的類庫:Libavdevice。使用這個庫可以讀取電腦(或者其他設備上)的多媒體設備的數據,或者輸出數據到指定的多媒體設備上。 ## libavdevice使用 使用libavdevice的時候需要包含其頭文件: ``` #include "libavdevice/avdevice.h" ``` 然后,在程序中需要注冊libavdevice: ``` avdevice_register_all(); ``` 接下來就可以使用libavdevice的功能了。 使用libavdevice讀取數據和直接打開視頻文件比較類似。因為系統的設備也被FFmpeg認為是一種輸入的格式(即AVInputFormat)。使用FFmpeg打開一個普通的視頻文件使用如下函數: ``` AVFormatContext *pFormatCtx = avformat_alloc_context(); avformat_open_input(&pFormatCtx, "test.h265",NULL,NULL); ``` 使用libavdevice的時候,唯一的不同在于需要首先查找用于輸入的設備。在這里使用av_find_input_format()完成: ``` AVFormatContext *pFormatCtx = avformat_alloc_context(); AVInputFormat *ifmt=av_find_input_format("vfwcap"); avformat_open_input(&pFormatCtx, 0, ifmt,NULL); ``` 上述代碼首先指定了vfw設備作為輸入設備,然后在URL中指定打開第0個設備(在我自己計算機上即是攝像頭設備)。 在Windows平臺上除了使用vfw設備作為輸入設備之外,還可以使用DirectShow作為輸入設備: ``` AVFormatContext *pFormatCtx = avformat_alloc_context(); AVInputFormat *ifmt=av_find_input_format("dshow"); avformat_open_input(&pFormatCtx,"video=Integrated Camera",ifmt,NULL) ; ``` ## 調用攝像頭 [https://blog.csdn.net/weixin\_39743893/article/details/80714217](https://blog.csdn.net/weixin_39743893/article/details/80714217) 遇到的問題,就是直接使用引用庫就行。在mac上不要使用vcpkg生成的變量${FFMPEG_LIBRARIES} 會造成qt調用obcj的問題。 ``` Undefined symbols for architecture x86\_64: "\_AVMediaTypeAudio", referenced from: \_avf\_read\_header in libavdevice.a(avfoundation.o) "\_AVMediaTypeMuxed", referenced from: \_avf\_read\_header in libavdevice.a(avfoundation.o) "\_AVMediaTypeVideo", referenced from: \_avf\_read\_header in libavdevice.a(avfoundation.o) "\_CGBitmapContextCreate", referenced from: \_apply\_filter in libavfilter.a(vf\_coreimage.o) "\_CGColorSpaceCreateWithName", referenced from: \_init in libavfilter.a(vf\_coreimage.o) "\_CGContextDrawImage", referenced from: \_apply\_filter in libavfilter.a(vf\_coreimage.o) "\_CGContextRelease", referenced from: \_apply\_filter in libavfilter.a(vf\_coreimage.o) "\_CGGetActiveDisplayList", referenced from: \_avf\_read\_header in libavdevice.a(avfoundation.o) "\_CGImageGetHeight", referenced from: \_apply\_filter in libavfilter.a(vf\_coreimage.o) "\_CGImageGetWidth", referenced from: \_apply\_filter in libavfilter.a(vf\_coreimage.o) "\_CGLGetCurrentContext", referenced from: \_init in libavfilter.a(vf\_coreimage.o) "\_NSRectFromString", referenced from: \_apply\_filter in libavfilter.a(vf\_coreimage.o) "\_NSUndefinedKeyException", referenced from: \_avf\_read\_header in libavdevice.a(avfoundation.o) \_apply\_filter in libavfilter.a(vf\_coreimage.o) "\_OBJC\_CLASS\_$\_AVCaptureAudioDataOutput", referenced from: objc-class-ref in libavdevice.a(avfoundation.o) "\_OBJC\_CLASS\_$\_AVCaptureDevice", referenced from: objc-class-ref in libavdevice.a(avfoundation.o) "\_OBJC\_CLASS\_$\_AVCaptureDeviceInput", referenced from: objc-class-ref in libavdevice.a(avfoundation.o) "\_OBJC\_CLASS\_$\_AVCaptureScreenInput", referenced from: objc-class-ref in libavdevice.a(avfoundation.o) "\_OBJC\_CLASS\_$\_AVCaptureSession", referenced from: objc-class-ref in libavdevice.a(avfoundation.o) "\_OBJC\_CLASS\_$\_AVCaptureVideoDataOutput", referenced from: objc-class-ref in libavdevice.a(avfoundation.o) "\_OBJC\_CLASS\_$\_CIColor", referenced from: objc-class-ref in libavfilter.a(vf\_coreimage.o) "\_OBJC\_CLASS\_$\_CIContext", referenced from: objc-class-ref in libavfilter.a(vf\_coreimage.o) "\_OBJC\_CLASS\_$\_CIFilter", referenced from: objc-class-ref in libavfilter.a(vf\_coreimage.o) "\_OBJC\_CLASS\_$\_CIImage", referenced from: objc-class-ref in libavfilter.a(vf\_coreimage.o) "\_OBJC\_CLASS\_$\_CIVector", referenced from: objc-class-ref in libavfilter.a(vf\_coreimage.o) "\_OBJC\_CLASS\_$\_NSAutoreleasePool", referenced from: objc-class-ref in libavdevice.a(avfoundation.o) "\_OBJC\_CLASS\_$\_NSNumber", referenced from: objc-class-ref in libavdevice.a(avfoundation.o) objc-class-ref in libavfilter.a(vf\_coreimage.o) "\_OBJC\_CLASS\_$\_NSOpenGLPixelFormat", referenced from: objc-class-ref in libavfilter.a(vf\_coreimage.o) "\_OBJC\_CLASS\_$\_NSString", referenced from: objc-class-ref in libavfilter.a(vf\_coreimage.o) "\_SDL\_CreateTexture", referenced from: \_sdl2\_write\_header in libavdevice.a(sdl2.o) "\_SDL\_CreateWindowAndRenderer", referenced from: \_sdl2\_write\_header in libavdevice.a(sdl2.o) "\_SDL\_DestroyRenderer", referenced from: \_sdl2\_write\_header in libavdevice.a(sdl2.o) \_sdl2\_write\_packet in libavdevice.a(sdl2.o) \_sdl2\_write\_trailer in libavdevice.a(sdl2.o) "\_SDL\_DestroyTexture", referenced from: \_sdl2\_write\_header in libavdevice.a(sdl2.o) \_sdl2\_write\_packet in libavdevice.a(sdl2.o) \_sdl2\_write\_trailer in libavdevice.a(sdl2.o) "\_SDL\_DestroyWindow", referenced from: \_sdl2\_write\_header in libavdevice.a(sdl2.o) \_sdl2\_write\_packet in libavdevice.a(sdl2.o) \_sdl2\_write\_trailer in libavdevice.a(sdl2.o) "\_SDL\_GetError", referenced from: \_sdl2\_write\_header in libavdevice.a(sdl2.o) "\_SDL\_Init", referenced from: \_sdl2\_write\_header in libavdevice.a(sdl2.o) "\_SDL\_PollEvent", referenced from: \_sdl2\_write\_packet in libavdevice.a(sdl2.o) "\_SDL\_Quit", referenced from: \_sdl2\_write\_header in libavdevice.a(sdl2.o) \_sdl2\_write\_packet in libavdevice.a(sdl2.o) \_sdl2\_write\_trailer in libavdevice.a(sdl2.o) "\_SDL\_RenderClear", referenced from: \_sdl2\_write\_packet in libavdevice.a(sdl2.o) "\_SDL\_RenderCopy", referenced from: \_sdl2\_write\_packet in libavdevice.a(sdl2.o) "\_SDL\_RenderPresent", referenced from: \_sdl2\_write\_packet in libavdevice.a(sdl2.o) "\_SDL\_SetWindowPosition", referenced from: \_sdl2\_write\_header in libavdevice.a(sdl2.o) "\_SDL\_SetWindowTitle", referenced from: \_sdl2\_write\_header in libavdevice.a(sdl2.o) "\_SDL\_ShowWindow", referenced from: \_sdl2\_write\_header in libavdevice.a(sdl2.o) "\_SDL\_UpdateTexture", referenced from: \_sdl2\_write\_packet in libavdevice.a(sdl2.o) "\_SDL\_UpdateYUVTexture", referenced from: \_sdl2\_write\_packet in libavdevice.a(sdl2.o) "\_SDL\_WasInit", referenced from: \_sdl2\_write\_header in libavdevice.a(sdl2.o) "\_kCGColorSpaceGenericRGB", referenced from: \_init in libavfilter.a(vf\_coreimage.o) "\_kCIAttributeClass", referenced from: \_init in libavfilter.a(vf\_coreimage.o) "\_kCIAttributeDefault", referenced from: \_init in libavfilter.a(vf\_coreimage.o) "\_kCIAttributeSliderMax", referenced from: \_init in libavfilter.a(vf\_coreimage.o) "\_kCIAttributeSliderMin", referenced from: \_init in libavfilter.a(vf\_coreimage.o) "\_kCIAttributeType", referenced from: \_init in libavfilter.a(vf\_coreimage.o) "\_kCICategoryGenerator", referenced from: \_init in libavfilter.a(vf\_coreimage.o) "\_kCIFormatARGB8", referenced from: \_apply\_filter in libavfilter.a(vf\_coreimage.o) "\_kCIInputImageKey", referenced from: \_apply\_filter in libavfilter.a(vf\_coreimage.o) "\_kCIOutputImageKey", referenced from: \_apply\_filter in libavfilter.a(vf\_coreimage.o) ld: symbol(s) not found for architecture x86\_64 ``` ## Video codec rawvideo not compatible with flv 在mac上捕獲不到攝像頭,捕獲屏幕,然后推流出現的錯誤。 原因 文件使用的視頻格式是 rawvideo, 這個太新了,由于flv 已經不更新了,所以不能在 flv文件中寫入 rawvideo格式的視頻。你轉成? flv文件之所以可以推流是因為在轉格式的時候 視頻格式也發生了變化,就成了flv可以支持的視頻格式,所以才能推流成功。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看