[c#] C # /. NET 용 솔리드 FFmpeg 래퍼

나는 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();


답변

MediaHandler Pro라는 ffmpeg 래퍼 라이브러리를 가지고 놀았습니다.

http://www.mediasoftpro.com

지금까지 유망 해 보입니다.


답변

나는 똑같은 것을 연구하고 있으며 원래는 변환에 훌륭하게 작동하는 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