성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
MathJax 입력기
최근 덧글
[정성태] 정적 분석과 함께, 이제는 실행 시 성능 분석까지 (비록 Azu...
[정성태] .NET Source Browser를 이용해 Roslyn 소스 ...
[정성태] Experimental C# Interceptors: AOT &...
[정성태] .NET Conf 2023 (Day 2) - Tiny, fast...
[정성태] The end of the Tye Experiment #1622...
[정성태] This is a simple app that converts ...
[정성태] Wrathmark: An Interesting Compute W...
[정성태] FFmpeg Filters Every Youtuber Needs...
[정성태] 일단, PInvokeStackImbalance 오류가 발생했다는...
[Heegyoo Lee] 코드 자체는 동작하는 것처럼 보이는데요. (어떤 때는 시그니쳐가...
글쓰기
제목
이름
암호
전자우편
HTML
홈페이지
유형
제니퍼 .NET
닷넷
COM 개체 관련
스크립트
VC++
VS.NET IDE
Windows
Team Foundation Server
디버깅 기술
오류 유형
개발 환경 구성
웹
기타
Linux
Java
DDK
Math
Phone
Graphics
사물인터넷
부모글 보이기/감추기
내용
<div style='display: inline'> <h1 style='font-family: Malgun Gothic, Consolas; font-size: 20pt; color: #006699; text-align: center; font-weight: bold'>C 언어로 작성된 FFmpeg Examples의 C# 포팅 전체 소스 코드</h1> <p> ffmpeg 공식 사이트에 나온 C 언어 예제를,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > FFmpeg - Examples ; <a target='tab' href='https://ffmpeg.org/doxygen/trunk/examples.html'>https://ffmpeg.org/doxygen/trunk/examples.html</a> </pre> <br /> 이제야 모두 C#으로 포팅을 했습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > C# - ffmpeg(FFmpeg.AutoGen)를 이용한 avio_reading.c 예제 포팅 ; <a target='tab' href='https://www.sysnet.pe.kr/2/0/12964'>https://www.sysnet.pe.kr/2/0/12964</a> ; <a target='tab' href='https://ffmpeg.org/doxygen/trunk/avio_reading_8c-example.html'>avio_reading.c</a> - <a target='tab' href='https://github.com/stjeong/ffmpeg_autogen_cs/tree/master/avio_reading'>https://github.com/stjeong/ffmpeg_autogen_cs/tree/master/avio_reading</a> C# - ffmpeg(FFmpeg.AutoGen)를 이용해 MP2 오디오 파일 디코딩 예제(decode_audio.c) ; <a target='tab' href='https://www.sysnet.pe.kr/2/0/12933'>https://www.sysnet.pe.kr/2/0/12933</a> ; <a target='tab' href='https://ffmpeg.org/doxygen/trunk/decode_audio_8c-example.html'>decode_audio.c</a> - <a target='tab' href='https://github.com/stjeong/ffmpeg_autogen_cs/tree/master/decode_audio'>https://github.com/stjeong/ffmpeg_autogen_cs/tree/master/decode_audio</a> C# - ffmpeg(FFmpeg.AutoGen)를 이용한 비디오 디코딩 예제(decode_video.c) ; <a target='tab' href='https://www.sysnet.pe.kr/2/0/12924'>https://www.sysnet.pe.kr/2/0/12924</a> ; <a target='tab' href='https://ffmpeg.org/doxygen/trunk/decode_video_8c-example.html'>decode_video.c</a> - <a target='tab' href='https://github.com/stjeong/ffmpeg_autogen_cs/tree/master/decode_video'>https://github.com/stjeong/ffmpeg_autogen_cs/tree/master/decode_video</a> C# - ffmpeg(FFmpeg.AutoGen)를 이용한 demuxing_decoding.c 예제 포팅 ; <a target='tab' href='https://www.sysnet.pe.kr/2/0/12987'>https://www.sysnet.pe.kr/2/0/12987</a> ; <a target='tab' href='https://ffmpeg.org/doxygen/trunk/demuxing_decoding_8c-example.html'>demuxing_decoding.c</a> - <a target='tab' href='https://github.com/stjeong/ffmpeg_autogen_cs/tree/master/demuxing_decoding'>https://github.com/stjeong/ffmpeg_autogen_cs/tree/master/demuxing_decoding</a> C# - ffmpeg(FFmpeg.AutoGen)를 이용해 오디오(mp2) 인코딩하는 예제(encode_audio.c) ; <a target='tab' href='https://www.sysnet.pe.kr/2/0/12937'>https://www.sysnet.pe.kr/2/0/12937</a> ; <a target='tab' href='https://ffmpeg.org/doxygen/trunk/encode_audio_8c-example.html'>encode_audio.c</a> - <a target='tab' href='https://github.com/stjeong/ffmpeg_autogen_cs/tree/master/encode_audio'>https://github.com/stjeong/ffmpeg_autogen_cs/tree/master/encode_audio</a> C# - ffmpeg(FFmpeg.AutoGen)를 이용한 비디오 인코딩 예제(encode_video.c) ; <a target='tab' href='https://www.sysnet.pe.kr/2/0/12898'>https://www.sysnet.pe.kr/2/0/12898</a> ; <a target='tab' href='https://ffmpeg.org/doxygen/trunk/encode_video_8c-example.html'>encode_video.c</a> - <a target='tab' href='https://github.com/stjeong/ffmpeg_autogen_cs/tree/master/encode_video'>https://github.com/stjeong/ffmpeg_autogen_cs/tree/master/encode_video</a> ffmpeg의 파일 해시 예제(ffhash.c)를 C#으로 포팅 ; <a target='tab' href='https://www.sysnet.pe.kr/2/0/12935'>https://www.sysnet.pe.kr/2/0/12935</a> ; <a target='tab' href='https://ffmpeg.org/doxygen/trunk/ffhash_8c-example.html'>ffhash.c</a> - <a target='tab' href='https://github.com/stjeong/ffmpeg_autogen_cs/tree/master/ffhash'>https://github.com/stjeong/ffmpeg_autogen_cs/tree/master/ffhash</a> C# - ffmpeg(FFmpeg.AutoGen)를 이용한 오디오 필터 예제(filter_audio.c) ; <a target='tab' href='https://www.sysnet.pe.kr/2/0/12952'>https://www.sysnet.pe.kr/2/0/12952</a> ; <a target='tab' href='https://ffmpeg.org/doxygen/trunk/filter_audio_8c-example.html'>filter_audio.c</a> - <a target='tab' href='https://github.com/stjeong/ffmpeg_autogen_cs/tree/master/filter_audio'>https://github.com/stjeong/ffmpeg_autogen_cs/tree/master/filter_audio</a> C# - ffmpeg(FFmpeg.AutoGen)를 이용한 오디오 필터링 예제(filtering_audio.c) ; <a target='tab' href='https://www.sysnet.pe.kr/2/0/12951'>https://www.sysnet.pe.kr/2/0/12951</a> ; <a target='tab' href='https://ffmpeg.org/doxygen/trunk/filtering_audio_8c-example.html'>filtering_audio.c</a> - <a target='tab' href='https://github.com/stjeong/ffmpeg_autogen_cs/tree/master/filtering_audio'>https://github.com/stjeong/ffmpeg_autogen_cs/tree/master/filtering_audio</a> C# - ffmpeg(FFmpeg.AutoGen)를 이용한 filtering_video.c 예제 포팅 ; <a target='tab' href='https://www.sysnet.pe.kr/2/0/12984'>https://www.sysnet.pe.kr/2/0/12984</a> ; <a target='tab' href='https://ffmpeg.org/doxygen/trunk/filtering_video_8c-example.html'>filtering_video.c</a> - <a target='tab' href='https://github.com/stjeong/ffmpeg_autogen_cs/tree/master/filtering_video'>https://github.com/stjeong/ffmpeg_autogen_cs/tree/master/filtering_video</a> C# - ffmpeg(FFmpeg.AutoGen)를 이용한 http_multiclient.c 예제 포팅 ; <a target='tab' href='https://www.sysnet.pe.kr/2/0/13002'>https://www.sysnet.pe.kr/2/0/13002</a> ; <a target='tab' href='https://ffmpeg.org/doxygen/trunk/http_multiclient_8c-example.html'>http_multiclient.c</a> - <a target='tab' href='https://github.com/stjeong/ffmpeg_autogen_cs/tree/master/http_multiclient'>https://github.com/stjeong/ffmpeg_autogen_cs/tree/master/http_multiclient</a> C# - ffmpeg(FFmpeg.AutoGen)로 하드웨어 가속기를 이용한 비디오 디코딩 예제(hw_decode.c) ; <a target='tab' href='https://www.sysnet.pe.kr/2/0/12932'>https://www.sysnet.pe.kr/2/0/12932</a> ; <a target='tab' href='https://ffmpeg.org/doxygen/trunk/hw_decode_8c-example.html'>hw_decode.c</a> - <a target='tab' href='https://github.com/stjeong/ffmpeg_autogen_cs/tree/master/hw_decode'>https://github.com/stjeong/ffmpeg_autogen_cs/tree/master/hw_decode</a> C# - ffmpeg(FFmpeg.AutoGen)를 이용해 멀티미디어 파일의 메타데이터를 보여주는 예제(metadata.c) ; <a target='tab' href='https://www.sysnet.pe.kr/2/0/12936'>https://www.sysnet.pe.kr/2/0/12936</a> ; <a target='tab' href='https://ffmpeg.org/doxygen/trunk/metadata_8c-example.html'>metadata.c</a> - <a target='tab' href='https://github.com/stjeong/ffmpeg_autogen_cs/tree/master/metadata'>https://github.com/stjeong/ffmpeg_autogen_cs/tree/master/metadata</a> C# - ffmpeg(FFmpeg.AutoGen)를 이용한 muxing.c 예제 포팅 ; <a target='tab' href='https://www.sysnet.pe.kr/2/0/12971'>https://www.sysnet.pe.kr/2/0/12971</a> ; <a target='tab' href='https://ffmpeg.org/doxygen/trunk/muxing_8c-example.html'>muxing.c</a> - <a target='tab' href='https://github.com/stjeong/ffmpeg_autogen_cs/tree/master/muxing'>https://github.com/stjeong/ffmpeg_autogen_cs/tree/master/muxing</a> C# - ffmpeg(FFmpeg.AutoGen)를 이용한 qsvdec.c 예제 포팅 ; <a target='tab' href='https://www.sysnet.pe.kr/2/0/12975'>https://www.sysnet.pe.kr/2/0/12975</a> ; <a target='tab' href='https://ffmpeg.org/doxygen/trunk/qsvdec_8c-example.html'>qsvdec.c</a> - <a target='tab' href='https://github.com/stjeong/ffmpeg_autogen_cs/tree/master/qsvdec'>https://github.com/stjeong/ffmpeg_autogen_cs/tree/master/qsvdec</a> C# - ffmpeg(FFmpeg.AutoGen)를 이용한 remuxing.c 예제 포팅 ; <a target='tab' href='https://www.sysnet.pe.kr/2/0/13006'>https://www.sysnet.pe.kr/2/0/13006</a> ; <a target='tab' href='https://ffmpeg.org/doxygen/trunk/remuxing_8c-example.html'>remuxing.c</a> - <a target='tab' href='https://github.com/stjeong/ffmpeg_autogen_cs/tree/master/remuxing'>https://github.com/stjeong/ffmpeg_autogen_cs/tree/master/remuxing</a> C# - ffmpeg(FFmpeg.AutoGen)를 이용한 resampling_audio.c 예제 포팅 ; <a target='tab' href='https://www.sysnet.pe.kr/2/0/12978'>https://www.sysnet.pe.kr/2/0/12978</a> ; <a target='tab' href='https://ffmpeg.org/doxygen/trunk/resampling_audio_8c-example.html'>resampling_audio.c</a> - <a target='tab' href='https://github.com/stjeong/ffmpeg_autogen_cs/tree/master/resampling_audio'>https://github.com/stjeong/ffmpeg_autogen_cs/tree/master/resampling_audio</a> C# - ffmpeg(FFmpeg.AutoGen)를 이용한 비디오 프레임의 크기 및 포맷 변경 예제(scaling_video.c) ; <a target='tab' href='https://www.sysnet.pe.kr/2/0/12961'>https://www.sysnet.pe.kr/2/0/12961</a> ; <a target='tab' href='https://ffmpeg.org/doxygen/trunk/scaling_video_8c-example.html'>scaling_video.c</a> - <a target='tab' href='https://github.com/stjeong/ffmpeg_autogen_cs/tree/master/scaling_video'>https://github.com/stjeong/ffmpeg_autogen_cs/tree/master/scaling_video</a> C# - ffmpeg(FFmpeg.AutoGen)를 이용한 transcode_aac.c 예제 포팅 ; <a target='tab' href='https://www.sysnet.pe.kr/2/0/12991'>https://www.sysnet.pe.kr/2/0/12991</a> ; <a target='tab' href='https://ffmpeg.org/doxygen/trunk/transcode_aac_8c-example.html'>transcode_aac.c</a> - <a target='tab' href='https://github.com/stjeong/ffmpeg_autogen_cs/tree/master/transcode_aac'>https://github.com/stjeong/ffmpeg_autogen_cs/tree/master/transcode_aac</a> C# - ffmpeg(FFmpeg.AutoGen)를 이용한 transcoding.c 예제 포팅 ; <a target='tab' href='https://www.sysnet.pe.kr/2/0/13023'>https://www.sysnet.pe.kr/2/0/13023</a> ; <a target='tab' href='https://ffmpeg.org/doxygen/trunk/transcoding_8c-example.html'>transcoding.c</a> - <a target='tab' href='https://github.com/stjeong/ffmpeg_autogen_cs/tree/master/transcoding'>https://github.com/stjeong/ffmpeg_autogen_cs/tree/master/transcoding</a> C# - ffmpeg(FFmpeg.AutoGen)를 이용한 vaapi_encode.c, vaapi_transcode.c 예제 포팅 ; <a target='tab' href='https://www.sysnet.pe.kr/2/0/13025'>https://www.sysnet.pe.kr/2/0/13025</a> ; <a target='tab' href='https://ffmpeg.org/doxygen/trunk/vaapi_encode_8c-example.html'>vaapi_encode.c</a> - <a target='tab' href='https://github.com/stjeong/ffmpeg_autogen_cs/tree/master/vaapi_encode'>https://github.com/stjeong/ffmpeg_autogen_cs/tree/master/vaapi_encode</a> ; <a target='tab' href='https://ffmpeg.org/doxygen/trunk/vaapi_transcode_8c-example.html'>vaapi_transcode.c</a> - <a target='tab' href='https://github.com/stjeong/ffmpeg_autogen_cs/tree/master/vaapi_transcode'>https://github.com/stjeong/ffmpeg_autogen_cs/tree/master/vaapi_transcode</a> </pre> <br /> 그리고, 모든 소스 코드는 아래의 github에 올려져 있습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > stjeong / ffmpeg_autogen_cs ; <a target='tab' href='https://github.com/stjeong/ffmpeg_autogen_cs'>https://github.com/stjeong/ffmpeg_autogen_cs</a> </pre> <br /> (찾아보진 않았는데, 아마 다른 어떤 분도 C# 포팅을 한 repo를 공유하고 있을 것입니다. ^^;)<br /> <br /> 사실, C# 언어에서 포인터를 지원하기 때문에 C 코드를 거의 그대로 변환하는 것이 가능하므로 딱히 어려운 작업은 아니어서 이렇게나 시간이 걸릴 일은 아니었는데, 개인적으로 너무 동영상 처리 분야를 몰라 학습 시간이 필요한 탓에 속도가 많이 더뎠습니다.<br /> <br /> 참고로, 제가 저걸 포팅했다고 해서 ffmpeg에 대해 전문가라고 착각하실 분이 계실지 몰라 미리 말씀드리자면, 저는 동영상 처리에 대해 거의 문외한에 가깝기 때문에 가능한 질문보다는 정보성 덧글을 (<a target='tab' href='https://www.sysnet.pe.kr/2/0/12959#15570'>이렇게!</a>) 달아주시길 바랍니다. ^^;<br /> </p><br /> <br /><hr /><span style='color: Maroon'>[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]</span> </div>
첨부파일
스팸 방지용 인증 번호
1661
(왼쪽의 숫자를 입력해야 합니다.)