본문 바로가기

분류 전체보기

[C#/WPF] FFmpeg로 RTP / RTSP 영상 Display 하기 본 포스팅은 [C#/WPF] FFmpeg로 USB Camera(WebCam) Display 하기 시리즈의 보너스 판이다. 링크 [C#/WPF] FFmpeg로 USB Camera(WebCam) Display 하기 - 1[C#/WPF] FFmpeg로 USB Camera(WebCam) Display 하기 - 2[C#/WPF] FFmpeg로 USB Camera(WebCam) Display 하기 - 3 기본적인 환경설정과 대부분의 소스코드는 동일하다. 단 2개 소스 파일의 일부분만 변경하면 웹캠에서 RTP 혹은 RTSP 영상을 출력할 수 있다. 수정할 파일 목록이다. VideoStreamDecoder.cs MainWindow.xaml.cs VideoStreamDecoder.cs using FFmpeg.AutoGe.. 더보기
[FFmpeg] FFplay 로 USB Camera(WebCam) Display 하기 ffplay.exe로 웹캠 영상을 디스플레이하는 명령어를 알아본다. FFmpeg 다운은 아래 포스팅을 참고 https://imsoftpro.tistory.com/61 FFmpeg를 다운받고 압축을 풀었으면 커맨드창을 통해 해당 경로의 Bin폴더로 들어간다. 폴더안에 ffmpeg.exe 와 ffplay.exe 등이 있을 것이다. 그리고 아래 명령어를 입력한다. ffplay -f dshow -i video="AVerMedia GC550 Video Capture" 여기서 video="camera device name" 이다. 명령어를 입력하고 엔터를 치면 아래와 같이 새 창이 뜨면서 영상이 재생될 것이다. 계륜미는 이쁘다. 더보기
[C#/WPF] FFmpeg로 USB Camera(WebCam) Display 하기 - 3 웹캠을 디스플레이하기 위해 UI에 Play 버튼과 Image 컨트롤을 추가한다. Image 컨트롤의 이름은 image로 설정하고 (x:Name="image") Button 컨트롤의 이름은 Play_Button으로 설정하고(x:Name="Play_Button") 클릭 이벤트를 추가한다. 그리고 종료 시 thread종료를 위해 MianWindow Closing 이벤트를 추가한다. 프로젝트 참조에 System.Drawing 을 추가하고 MainWindow 코드비하인드에 아래 소스를 추가한다. MianWindow.xaml.cs using System;using System.Linq;using System.Runtime.InteropServices;using System.Threading;using System... 더보기
[C#/WPF] FFmpeg로 USB Camera(WebCam) Display 하기 - 2 아래부터는 이전 장에서 생성한 FFmpegBinariesHelper.csFFmpegHelper.cs VideoFrameConverter.csVideoStreamDecoder.cs 파일들의 소스 코드이니 복사해서 붙여넣는다. (* 클래스 이름이나 네임스페이스는 잘 확인해서 붙여넣어야 오류가 안난다.) FFmpegBinariesHelper.cs using System;using System.IO;using System.Runtime.InteropServices; namespace FFmpeg_usbCam.FFmpeg{ public class FFmpegBinariesHelper { private const string LD_LIBRARY_PATH = "LD_LIBRARY_PATH"; internal stat.. 더보기
[C#/WPF] FFmpeg로 USB Camera(WebCam) Display 하기 - 1 오랜만에 가장 유명한 멀티미디어 오픈소스 라이브러리 중 하나인 FFmpeg로 C#, WPF 환경에서 웹캠 영상을 받아와 화면에 디스플레이하는 기능을 구현해본다. 1장에서는 FFmpeg 패키지 설치부터 기본 환경설정에 대해 다루고 2장에서 관련된 소스를 코딩하는 작업을 다룰까 한다. 먼저 WPF App 프로젝트를 생성하고 NuGet 패키지 관리자로 들어간다. (C# 프로젝트로 생성해도 무방하다. 대신 영상을 디스플레이하는 컨트롤이 달라질수도 있다.) NuGet 패키지 관리자에서 찾아보기로 들어가 ffmpeg.Autogen을 검색해서 설치한다. 그러면 아래 그림과 같이 프로젝트 참조파일에 FFmpeg.AutoGen이 추가된걸 확인할 수 있다. 그리고 프로젝트 아래에 FFmpeg 폴더를 만들어 주고 그 아래에.. 더보기
Text to Speech(TTS) 사용 + 편법 Text to Speech 는 단어나 문장을 기계어가 자동으로 읽어주는 것을 말한다. 윈도우 10버전에서는 단순히 참조 추가만으로 사용할 수 있고 그 이하 버전에서는 SDK를 따로 설치해줘야 할 것이다. 그럼 C#기준으로 윈도우 기본 목소리를 활용하여 텍스트를 읽어보자. 먼저 참조 추가에서 System.Speech를 추가해준다. using System.Speech.Synthesis; SpeechSynthesizer speechSynthesizer = new SpeechSynthesizer();speechSynthesizer.SetOutputToDefaultAudioDevice();speechSynthesizer.SelectVoice("Microsoft Heami Desktop"); speechSynthe.. 더보기
Git 저장소 - 세 가지 상태 (using Visual Studio) 이전에 포스팅했던 Git 저장소의 세 가지 상태에 대해 Visual Studio를 사용해서 직접 눈으로 확인해보자. 이전 포스팅: https://imsoftpro.tistory.com/57?category=802036 먼저 이전 포스팅에서 만든 Git에 publish한 프로젝트를 열어보면 파일의 좌측에 자물쇠 모양의 아이콘이 생긴걸 확인할 수 있다. 해당 파일들은 모두 Git Directory에 저장이 되었음을 나타낸다. 여기서 소스파일 하나를 추가해보자. 그러면 위 그림과 같이 Git test 프로젝트 파일은 체크 표시로 바뀌고 Class.cs파일의 좌측에는 +표시가 나타난다. 느낌이 온다. 체크표시는 파일의 변경을 나타내고 +는 새로운 파일의 추가를 나타내는구나! 이제 팀 탐색기에서 변경내용으로 들어.. 더보기
Git 저장소 - 세 가지 상태 이번에는 Git을 사용할 때 가장 중요한 부분을 짚고 넘어가려한다. 먼저 Git의 데이터는 파일 시스템의 크기가 아주 작은 Snapshot이라 할 수 있다. Git은 프로젝트의 상태를 저장할 때마다 파일이 존재하는 그 순간을 중요시 여기며, 파일 변경내용이 없으면 성능을 위해 파일을 다시 저장하지 않고 단지 이전 상태의 파일에 대한 링크만 저장한다. Git은 파일을 Committed, Modified, Staged 이렇게 3가지 상태로 관리한다. - Committed: 데이터가 로컬 데이터베이스에 안전하게 저장됐다는 것 - Modified: 수정한 소스 파일이 아직 로컬 데이터베이스에 commit되지 않은 것 - Staged: 현재 수정한 소스 파일을 곧 커밋할 거라고 표시한 상태 이 세가지 상태는 Gi.. 더보기