일련의 비트 맵과 비디오 클립의 인코딩을 비디오 파일로 인코딩하는 Delphi-Class. FFMPEG-Library가 필요 하며이 라이브러리에 사용하기 쉽습니다. 이 클래스는 Delphi 10.3.3에 따라 개발되었지만 이후 버전 및 이전 버전에서도 작동해야합니다. 문제를보고하십시오. 우리는 비디오 스트림 작성에 집중하며 오디오 스트림 추가에 대한 기초적인 지원 만 있습니다. 여기에 포함 된 ffmpeg-library-version 및 header-file은 https://github.com/passbyyou888/ffmpeg-header 감사합니다!
인코더 클래스에는 2 가지 버전이 있습니다.
TBitmapEncoder VCL-based for platforms Win32 and Win64,
relatively stable with H264, Mpeg-4, Mjpeg, Mpeg1/2 encoders and .avi, .mp4 containers.
TBitmapEncoderM fmx-based for cross platform, a little less tested.
Demo currently working with Win32, Win64, Android, Android64 thanks to TurboMagic.
Recently more features translated from Win-version, more thoroughly tested under
Android32, better demo.
크로스 플랫폼 데모에는 런타임에 외부 스토리지에 쓸 수있는 권한을 요청하는 데 필요한 지원이 포함되어 있으므로 크로스 플랫폼 데모에는 최소한 Delphi 10.3.3이 필요합니다. Android에서 만든 비디오는 공개 다운로드 폴더에 저장되며 Android 데모는 32와 64 비트 모두에 대해 컴파일됩니다.
iOS 용 공유 객체가 제공되지만 현재 개발자 중 어느 것도 작동하지 않는 iOS 개발 설정이 없으므로 배포 관리자에 추가되지 않았으므로 아직 iOS에서 테스트되지 않았습니다. 성공하면 자유롭게 해당하고 풀 요청을 작성하십시오.
문제 영역 :
오류 처리를 개선해야합니다.
승리 버전 :
추가 된 생성자 CreateFromVideo (WIN 버전)에는 몇 가지 문제가 있습니다.
크로스 플랫폼 버전 :
H264- 인코더는 Android (최소한 Android32가 아님)에서 작동하지 않습니다. 스레드에서 tbitmap을 사용하는 것이 더 안정적이되었지만 남은 문제가있을 수 있습니다. Delphi는 TBITMAP의 스레드 안전성을 주장하지만, 특히 Android에서는 그렇지 않은 것 같습니다. 일부 해결 방법이 제자리에 있으며, 픽셀 작동은 이제 대부분 비디오 프레임에서 수행되며, 이는 더 많은 스레드 안전입니다.
아이디어, 보고서, 가장 환영합니다. *
문제는 데모에 더 자세히 설명되어 있습니다.