나는 C # /. NET 용 견고한 FFmpeg 래퍼를 위해 얼마 동안 웹을 검색했습니다 . 그러나 나는 아직 유용한 것을 생각해 내지 못했습니다. 다음 세 가지 프로젝트를 찾았지만 모두 초기 알파 단계에서 죽었습니다.
FFmpeg.NET
ffmpeg-sharp
FFLIB.NET
그래서 내 질문은 누군가가 더 성숙한 래퍼 프로젝트를 알고 있는지 여부입니다.
작업 대기열 등이있는 전체 트랜스 코딩 엔진을 찾고 있지 않습니다. 단순한 래퍼이므로 명령 줄 호출을 수행 한 다음 콘솔 출력을 구문 분석 할 필요가 없지만 메서드 호출을 수행하고 진행을 위해 이벤트 리스너를 사용할 수 있습니다.
그리고 초기 단계에 있더라도 활발한 프로젝트를 자유롭게 언급하십시오.
답변
이것은 내 자신의 래퍼입니다 : https://github.com/AydinAdn/MediaToolkit
MediaToolkit은 다음을 수행 할 수 있습니다.
- 비디오 파일을 다양한 다른 비디오 형식으로 변환합니다.
- 비디오 트랜스 코딩 작업을 수행합니다.
- 옵션 구성 :
Bit rate
,Frame rate
,Resolution / size
,Aspect ratio
,Duration of video
- 옵션 구성 :
- 오디오 트랜스 코딩 작업을 수행합니다.
- 구성 가능한 옵션 :
Audio sample rate
- 구성 가능한 옵션 :
- FILM, PAL 또는 NTSC TV 표준을 사용하여 비디오를 물리적 형식으로 변환
- 매체는 포함한다 :
DVD
,DV
,DV50
,VCD
,SVCD
- 매체는 포함한다 :
진행하면서 업데이트 중이며 사용을 환영합니다. 패키지 관리자 콘솔을 사용하여 설치할 수도 있습니다.
PM> Install-Package MediaToolkit
답변
여러 래퍼를 시도한 후 FFmpeg auto generated unsafe bindings for C # /. NET and Mono .
FFmpeg 네임 스페이스의 모든 클래스에 대한 저수준 interop 바인딩 집합입니다. 실제 래퍼만큼 편리하지는 않지만 IMO는 .Net에서 FFmpeg로 작업하는 데 가장 좋은 솔루션입니다.
장점 :
- 공장
- 신뢰할 수 있음-FFMpeg 자체를 신뢰한다고 가정하고 버그를 도입하는 타사 래퍼 코드가 없습니다.
- 항상 최신 버전의 FFmpeg로 업데이트됩니다.
- 모든 바인딩에 대한 단일 너겟 패키지
- XML 문서가 포함되어 있지만 온라인 문서 FFmpeg 문서 를 계속 사용할 수 있습니다 .
단점 :
- 낮은 수준 : c 구조체에 대한 포인터로 작업하는 방법을 알아야합니다 .
- 작동하려면 초기에 약간의 작업이 필요합니다. 나는 공식적인 예 에서 배우는 것이 좋습니다 .
참고 :이 스레드는 FFmpeg API 사용에 관한 것이지만 일부 사용 사례의 경우 ffmpeg.exe의 명령 줄 인터페이스 를 사용하는 것이 가장 좋습니다 .
답변
이것을 시도해보십시오. 간단한 래퍼에 사용할 수있는 것을 작성했을 것입니다.
http://jasonjano.wordpress.com/2010/02/09/a-simple-c-wrapper-for-ffmpeg/
답변
ASP.NET/Windows 서비스 (.NET) 응용 프로그램에서 FFmpeg를 사용했습니다. 그러나 콘솔을 구문 분석하지 않고 명령 줄을 사용하게되었습니다. 이것을 사용함으로써-FFmpeg의 업데이트를 제어하고 다중 코어에서 다중 변환을 실행하는 쉬운 방법을 가졌습니다.
답변
이 너겟 패키지를 사용할 수 있습니다.
당신이 성숙한 프로젝트 에 대해 물었다는 것을 알고 있지만, 내 기대를 채우는 프로젝트를 보지 못했기 때문에 나는 내 프로젝트를 만들기로 결정했습니다. 변환을 쉽게 대기열에 넣고 병렬로 실행할 수 있으며 미디어를 다른 형식으로 변환하고 자신의 인수를 ffmpeg로 보내고 ffmpeg + 이벤트 리스너의 출력을 현재 진행 상태로 구문 분석 할 수 있습니다.
Install-Package Xabe.FFmpeg
사용하기 쉬운 크로스 플랫폼 FFmpeg 래퍼를 만들려고합니다.
이에 대한 자세한 정보는 https://xabe.net/product/xabe_ffmpeg/ 에서 찾을 수 있습니다.
자세한 정보 : https://xabe.net/product/xabe_ffmpeg/#documentation
변환은 간단합니다.
IConversionResult result = await Conversion.ToMp4(Resources.MkvWithAudio, output).Start();
진도를 원하는 경우 :
IConversion conversion = Conversion.ToMp4(Resources.MkvWithAudio, output);
conversion.OnProgress += (duration, length) => { currentProgress = duration; }
await conversion.Start();
답변
답변
나는 똑같은 것을 연구하고 있으며 원래는 변환에 훌륭하게 작동하는 MediaToolKit (다른 답변에서 언급)을 사용했지만 이제는 좀 더 강력한 것이 필요합니다.
성숙하고 여전히 활성화 된 한 가지 옵션은 다음과 같습니다.
https://github.com/hudl/HudlFfmpeg
자세한 내용은 여기에서 읽을 수 있습니다 :
http://public.hudl.com/bits/archives/2014/08/15/announcing -hudlffmpeg-ac-framework-to-make-ffmpeg-interaction-simple /
많은 경우에 적합하지 않을 수있는 또 다른 옵션은 C # 코드에서 직접 exe를 호출하는 것입니다.
http://www.codeproject.com/Articles/774093/Another-FFmpeg-exe-Csharp-Wrapper
