back

eXport-it FFmpeg

FFmpeg 라이브러리란 무엇입니까?

FFmpeg(https://www.ffmpeg.org/)는 오디오 및 비디오를 기록, 변환 및 스트리밍하는 완벽한 크로스 플랫폼 솔루션입니다. FFmpeg는 인간과 기계가 만든 거의 모든 것을 디코딩, 인코딩, 트랜스코딩, mux, demux, 스트리밍, 필터링 및 재생할 수 있는 최고의 멀티미디어 프레임워크입니다. 그것은 최첨단까지 가장 모호한 고대 형식을 지원합니다. 일부 표준 위원회, 커뮤니티 또는 기업에서 설계했는지 여부에 관계없이.

또한 이식성이 높습니다. FFmpeg는 다양한 빌드 환경, 기계 아키텍처, Linux, Mac OS X, Microsoft Windows, BSD, Solaris 등에서 테스트 인프라 FATE를 컴파일, 실행 및 통과합니다. 및 구성.

FFmpeg 라이브러리 자체는 LGPL 2.1 라이선스 하에 있습니다. 특정 외부 라이브러리(예: libx264)를 활성화하면 라이선스가 GPL 2 이상으로 변경됩니다.

이 라이브러리는 Android 애플리케이션에 어떻게 통합되어 있습니까

저는 ffmpeg-android-maker 스크립트(기여자: Alexander Berezhnoi Javernaut + codacy-badger Codacy Badger + A2va)를 사용하여 라이브러리를 컴파일했습니다. 이 스크립트는 https://www.ffmpeg.org에서 FFmpeg의 소스 코드를 다운로드하고 라이브러리를 빌드하고 Android용으로 어셈블합니다. 스크립트는 공유 라이브러리(*.so 파일)와 헤더 파일(*.h 파일)을 생성합니다.

ffmpeg-android-maker의 주요 초점은 Android 프로젝트에 원활하게 통합할 수 있도록 공유 라이브러리를 준비하는 것입니다. 스크립트는 사용할 '출력' 디렉토리를 준비합니다. 그리고 이 프로젝트가 하는 일은 이것만이 아닙니다. ffmpeg-android-maker의 소스 코드는 MIT 라이선스로 제공됩니다. https://github.com/Javernaut/ffmpeg-android-maker/에서 자세한 내용은 LICENSE.txt 파일을 참조하세요. eXport-it FFmpeg 라이브러리는 libaom, libdav1d, liblame, libopus 및 libtwolame으로 컴파일되지만 모든 관련 라이브러리는 아닙니다.

FFmpeg에 대한 Java 지원을 개발하고 Android 7.1~12에서 실행하기 위해 더 이상 유지 관리되지 않는 Taner Sener의 https://github.com/tanersener/mobile-ffmpeg/에 설명된 MobileFFmpeg 프로젝트에서 시작했습니다. ... LGPL 3.0 ...

에 따라 라이선스가 부여되었습니다.

마지막으로 라이브러리가 포함된 JNI Android Studio 프로젝트를 준비하고 파일 및 Java 지원 코드를 포함하고 .aar 라이브러리 파일을 생성하여 기존 프로젝트에 추가 라이브러리로 통합했습니다.


멀티캐스트 채널 시작 방법

멀티캐스트 채널을 시작하려면 클라이언트를 사용하여 FFmpeg를 지원하는 로컬 네트워크(Wi-Fi)의 UPnP 서버에 액세스해야 합니다. 이 서버는 내보내는 파일 목록으로 응답해야 합니다. 이 서버가 FFmpeg를 지원하는 경우 목록 페이지의 맨 윗줄 끝에 "채널로"라는 작은 텍스트가 빨간색으로 표시되어야 합니다. 텍스트가 "빨간색"일 때 "재생" 버튼을 클릭하면 UPnP 프로토콜을 사용하기 전과 같이 작동합니다. 텍스트를 클릭하면 "녹색"이 되고 "재생" 버튼을 클릭하면 비디오 또는 오디오 파일을 선택한 후 "채널"이 시작되어야 합니다.

선택한 미디어 파일은 추가 작업으로 인해 시작 지연이 더 긴 것을 제외하고는 UPnP를 통해와 동일한 방식으로 분명히 재생됩니다. 파이프를 활성 상태로 유지하려면 이 클라이언트에서 미디어 파일을 계속 재생해야 합니다.

다른 기기에서 이 파이프 사용

IP 멀티캐스트는 인터넷을 통해 작동하지 않으며 LAN에서만 작동하므로 주로 Wi-Fi에서 작동합니다. 멀티캐스트 데이터 채널은 많은 클라이언트가 동시에 공유할 수 있습니다. Wi-Fi 네트워크에서 미디어 데이터 흐름을 전송하고 이러한 데이터를 연결된 기기에 거의 동기적으로 표시하고 지연 지연 차이만 표시합니다.

UPnP 또는 HTTP 스트리밍을 사용하는 경우 각 장치에는 표시된 비디오의 대역폭이 필요하며 글로벌 대역폭은 두 트래픽의 합계입니다. 멀티캐스트 스트리밍을 사용하면 LAN에서 여러 클라이언트 간에 공유되는 하나의 데이터 흐름을 보냅니다.

채널을 시작한 후 네트워크에서 다른 클라이언트를 사용하는 경우 클라이언트 기본 창에 추가 줄이 표시되어야 합니다. 이 줄을 클릭하기만 하면 쇼가 시작됩니다.

또한 eXport-it 클라이언트에 표시된 "UDP" URL을 사용하여 멀티캐스트 채널을 통해 배포된 비디오를 보여주거나 음악을 듣기 위해 VLC, SMplayer 등과 같은 다른 제품을 사용하는 것도 가능합니다.

멀티캐스트 채널을 중지하려면

멀티캐스트 채널을 중지하는 좋은 방법은 이 채널이 제어되는 클라이언트에서 시작한 클라이언트에서 중지하는 것입니다. 스트리밍된 미디어 파일의 끝까지 재생하면 쇼도 끝나야 합니다.

실용적 고려사항

멀티캐스트 채널을 시작하려면 다른 최신 제품의 eXport-it 클라이언트와 동일한 이 응용 프로그램의 특정 클라이언트 부분이 필요합니다. 실행 중인 멀티캐스트 채널을 사용하려면 애플리케이션 클라이언트나 VLC, SMPlayer 등과 같은 다른 제품을 사용하거나 ... 다른 플랫폼이나 Android에서 실행하면 됩니다. VLC를 사용할 때 멀티캐스트 채널을 사용하기 위한 URL은 udp://@239.255.147.111:27192...와 같이 매끄럽게 다릅니다. 단지 추가 "@"뿐입니다. UDP 멀티캐스트 채널을 사용하면 미디어 데이터가 한 번만 전송되어 여러 클라이언트에 표시되지만 실제 동기화는 없으며 버퍼링 및 장치 특성에 따라 몇 초 정도 지연될 수 있습니다.

오디오 멀티캐스트 채널을 듣는 것은 다른 제품에서도 할 수 있지만 특정 클라이언트는 IP 멀티캐스트를 통해 전송된 이미지도 보여줍니다. 특정 사진을 음악과 함께 보내려면 서버의 "2페이지" 메뉴 옵션을 사용하여 원하는 이미지만 선택하고 한 번의 클릭으로 모든 이미지를 선택 취소한 다음 원하는 이미지를 선택하세요...

프로토콜마다 장단점이 있습니다. UPnP 및 멀티캐스트 채널은 로컬 네트워크(주로 Wi-Fi)에서만 사용할 수 있으며 HTTP 스트리밍은 로컬에서 작동하지만 인터넷을 통해서도 작동하며 웹 브라우저를 클라이언트로 사용합니다. UPnP 및 멀티캐스트 채널은 액세스를 제어할 수 있는 안전한 방법이 없으며 Wi-Fi 네트워크에 연결된 모든 장치가 실행 중인 서버를 사용할 수 있습니다. HTTP 프로토콜을 사용하면 사용자 이름과 암호를 정의하고 액세스 범주(그룹)에서 파일을 설정하여 특정 사용자의 일부 미디어 파일에 대한 액세스를 제한할 수 있습니다. 서버 설정을 통해 배포되는 파일을 제한하고 필요한 경우 파일당 범주 이름을 설정할 수 있습니다.

back