Dynamic Media의 비디오

이 섹션에서는 Dynamic Media에서 비디오 작업에 대해 설명합니다.

빠른 시작: 비디오

다음 단계별 워크플로 설명은 Dynamic Media의 응용 비디오 세트를 빠르게 시작하고 실행하는 데 도움이 되도록 설계되었습니다. 각 단계 후에는 추가 정보를 찾을 수 있는 주제 머리글에 대한 상호 참조가 있습니다.

중요

Dynamic Media에서 비디오로 작업하기 전에 Adobe Experience Manager 관리자가 Dynamic Media - Scene7 모드 또는 Dynamic Media - 하이브리드 모드에서 Dynamic Media Cloud Services을 이미 활성화하고 구성했는지 확인하십시오.

Dynamic Media에서 현재 알려진 비디오 재생 문제 Experience Manager 6.5.9.0에서만:

  • 게시된 비디오가 업데이트된 경우 게재 변경 사항을 반영하도록 다시 게시해야 합니다.
  1. Dynamic Media 비디오 업로드 다음을 수행합니다.

  2. Dynamic Media 비디오 관리 다음 중 하나를 수행하여

  3. Dynamic Media 비디오 게시 다음 중 하나를 수행합니다.

Dynamic Media에서 비디오 작업

Dynamic Media의 비디오는 데스크톱, iOS, Android™, BlackBerry® 및 Windows 모바일 장치를 비롯한 여러 화면에서 스트리밍하기 위해 고품질의 응용 비디오를 쉽게 게시할 수 있는 종단간 솔루션입니다. 응용 비디오 세트는 다른 비트율 및 형식(예: 400kbps, 800kbps 및 1000kbps)으로 인코딩된 동일한 비디오 버전을 그룹화합니다. 데스크탑 컴퓨터 또는 모바일 장치가 사용 가능한 대역폭을 감지합니다.

예를 들어 iOS 모바일 장치에서 3G, 4G 또는 Wi-Fi와 같은 대역폭을 감지합니다. 그런 다음, 그것은 응용 비디오 세트 내의 다양한 비디오 비트 레이트 중에서 올바른 인코딩된 비디오를 자동으로 선택한다. 비디오는 데스크탑, 모바일 디바이스 또는 태블릿으로 스트리밍됩니다.

또한 데스크탑이나 모바일 장치에서 네트워크 상태가 변경되면 비디오 품질이 자동으로 동적으로 전환됩니다. 또한 고객이 데스크탑에서 전체 화면 모드로 전환하면 응용 비디오 세트가 더 나은 해상도를 사용하여 응답하므로 고객의 시청 경험이 향상됩니다. 응용 비디오 세트를 사용하면 여러 화면 및 장치에서 Dynamic Media 비디오를 재생하는 고객에게 가장 적합한 재생을 제공할 수 있습니다.

비디오 플레이어가 재생할 인코딩된 비디오나 재생 중 선택할 비디오를 결정하는 데 사용하는 논리는 다음 알고리즘을 기반으로 합니다.

  1. 비디오 플레이어는 플레이어 자체에서 "초기 비트율"에 대해 설정된 값에 가장 가까운 비트율에 따라 초기 비디오 조각을 로드합니다.

  2. 다음 기준을 사용하여 대역폭 속도에 대한 변경 사항에 따라 비디오 플레이어 스위치를 전환합니다.

    1. 플레이어는 가장 높은 대역폭 스트림을 예상 대역폭보다 작거나 같은 대역폭으로 선택합니다.
    2. 플레이어는 가용 대역폭의 80%만 고려합니다. 다만 전환하고 있다면 과대평가를 피하고 곧바로 다시 전환하는 것이 70%에 그쳐 더 보수적이다.

알고리즘에 대한 자세한 기술 정보는 https://android.googlesource.com/platform/frameworks/av/+/master/media/libstagefright/httplive/LiveSession.cpp

단일 비디오 및 응용 비디오 세트를 관리하기 위해 지원되는 비디오 세트는 다음과 같습니다.

  • 지원되는 다양한 비디오 형식과 오디오 형식의 비디오를 업로드하고 여러 화면에서 재생할 수 있도록 비디오를 MP4 H.264 형식으로 인코딩합니다. 미리 정의된 응용 비디오 사전 설정, 단일 비디오 인코딩 사전 설정 또는 자체 인코딩을 사용자 지정하여 비디오의 품질과 크기를 제어할 수 있습니다.

    • 응용 비디오 세트가 생성되면 MP4 비디오가 포함됩니다.
    • 참고: 기본/소스 비디오가 응용 비디오 세트에 추가되지 않습니다.
  • 모든 HTML5 비디오 뷰어에서 비디오 캡션 기능.

  • 전체 메타데이터 지원을 통해 비디오를 구성, 탐색 및 검색하여 비디오 자산을 효율적으로 관리할 수 있습니다.

  • iPhone, iPad, Android™, BlackBerry® 및 Windows Phone을 비롯한 웹 및 데스크탑, 모바일 디바이스에 응용 비디오 세트를 제공합니다.

응용 비디오 스트리밍은 다양한 iOS 플랫폼에서 지원됩니다. 다음을 참조하십시오 Dynamic Media 뷰어 참조 안내서.

Dynamic Media은 MP4 H.264 비디오용 모바일 비디오 재생을 지원합니다. 다음 위치에서 이 비디오 형식을 지원하는 BlackBerry® 장치를 찾을 수 있습니다. BlackBerry®에서 지원되는 비디오 형식.

다음 위치에서 이 비디오 형식을 지원하는 Windows 장치를 찾을 수 있습니다. Windows Phone 8에서 지원되는 미디어 코덱

  • 다음을 포함한 Dynamic Media 비디오 뷰어 사전 설정을 사용하여 비디오를 재생합니다.

    • 단일 비디오 뷰어.
    • 비디오 및 이미지 컨텐츠를 모두 결합하는 혼합 미디어 뷰어입니다.
  • 브랜딩 요구 사항을 충족하도록 비디오 플레이어를 구성합니다.

  • 간단한 URL 또는 포함 코드를 사용하여 비디오를 웹 사이트, 모바일 사이트 또는 모바일 애플리케이션에 통합합니다.

참조: Experience Manager Assets 및 Dynamic Media Classic 뷰어Experience Manager 자산에 대한 뷰어만.

우수 사례: HTML5 비디오 뷰어 사용

Dynamic Media HTML5 비디오 뷰어 사전 설정은 강력한 비디오 플레이어입니다. 이러한 매개 변수를 사용하여 HTML5 비디오 재생과 관련된 많은 일반적인 문제를 방지할 수 있습니다. 또한 모바일 장치와 관련된 문제(예: 적응형 비트율 스트리밍 게재 부족 및 제한된 데스크탑 브라우저 도달 범위)입니다.

플레이어의 디자인 측면에서는 표준 웹 개발 도구를 사용하여 비디오 플레이어의 기능을 디자인할 수 있습니다. 예를 들어 HTML 5와 CSS를 사용하여 단추, 컨트롤 및 사용자 지정 포스터 이미지 배경을 디자인하여 사용자 지정된 모양으로 고객에게 다가갈 수 있습니다.

뷰어의 재생 측에서는 브라우저의 비디오 기능을 자동으로 감지합니다. 그런 다음 적응형 비트율 스트리밍이라고도 하는 HLS(HTTP 라이브 스트리밍) 또는 DASH(HTTP를 통한 동적 적응형 스트리밍)를 사용하여 비디오를 제공합니다. 또는 이러한 전달 방법이 없는 경우 대신 HTML5 progressive가 사용됩니다.

를 단일 플레이어로 결합하여 다음을 수행합니다.

  • HTML5 및 CSS를 사용하여 재생 구성 요소를 디자인하는 기능
  • 포함된 재생 있음
  • 브라우저의 기능에 따라 적응형 및 점진적 스트리밍 사용

리치 미디어 콘텐츠의 범위를 데스크탑 및 모바일 사용자 모두로 확장하고 간소화된 비디오 환경을 보장합니다.

참조: HTML5 뷰어 정보.

HTML5 비디오 뷰어를 사용하여 데스크탑 컴퓨터 및 모바일 장치에서 비디오 재생

데스크탑 및 모바일 응용 비디오 스트리밍의 경우, 비트 전송률 전환에 사용되는 비디오는 응용 비디오 세트의 모든 MP4 비디오를 기반으로 합니다.

비디오 재생은 DASH 또는 HLS 또는 점진적 비디오 다운로드를 사용하여 발생합니다. 6.0, 6.1 및 6.2와 같은 이전 버전의 Experience Manager에서 비디오는 HTTP를 통해 스트리밍되었습니다.

Experience Manager 6.3 이상에서는 DM 게이트웨이 서비스 URL이 항상 HTTPS를 사용하기 때문에 이제 HTTPS(즉, DASH 또는 HLS)를 통해 비디오가 스트리밍됩니다. 이 기본 동작에는 고객에게 영향을 주지 않습니다. 즉, 브라우저에서 지원하지 않는 한 비디오 스트리밍은 항상 HTTPS를 통해 발생합니다. (다음 표 참조). 따라서

  • HTTPS 비디오 스트리밍이 있는 HTTPS 웹 사이트가 있는 경우 스트리밍이 좋습니다.
  • HTTPS 비디오 스트리밍이 있는 HTTP 웹 사이트가 있는 경우 스트리밍은 문제가 없으며 웹 브라우저에서 혼합 콘텐츠 문제가 발생하지 않습니다.

DASH는 국제 표준이고 HLS는 Apple 표준입니다. 둘 다 응용 비디오 스트리밍에 사용됩니다. 또한 두 기술 모두 네트워크 대역폭 용량에 따라 자동으로 재생을 조정합니다. 또한 고객이 나머지 비디오가 다운로드될 때까지 기다릴 필요 없이 비디오의 어느 지점으로든 "검색"할 수 있습니다.

점진적 비디오는 사용자의 데스크탑 시스템 또는 모바일 디바이스에 로컬로 비디오를 다운로드 및 저장하여 전달됩니다.

다음 표에서는 Dynamic Media 비디오 뷰어를 사용하는 데스크탑 컴퓨터 및 모바일 장치에서 비디오의 장치, 브라우저 및 재생 방법에 대해 설명합니다.

장치 브라우저 비디오 재생 모드
데스크탑 Internet Explorer 9 및 10 점진적 다운로드.
데스크탑 Internet Explorer 11+ Windows 8 및 Windows 10의 경우 - DASH* 또는 HLS가 요청될 때마다 HTTPS를 강제로 사용합니다. 알려진 제한 사항: DASH* 또는 HLS에서의 HTTP가 이 브라우저/운영 체제 조합에서 작동하지 않습니다.

Windows 7의 경우 - 점진적 다운로드. HTTP와 HTTPS 프로토콜을 선택하는 표준 논리를 사용합니다.
데스크탑 Firefox 23-44 점진적 다운로드.
데스크탑 Firefox 45 이상 DASH* 또는 HLS 적응형 비트 전송률 스트리밍.
데스크탑 Chrome DASH* 또는 HLS 적응형 비트 전송률 스트리밍.
데스크탑 Safari(Mac) HLS 적응형 비트율 스트리밍.
모바일 Chrome(Android™ 6 이하) 점진적 다운로드.
모바일 Chrome(Android™ 7 이상) DASH* 또는 HLS 적응형 비트 전송률 스트리밍.
모바일 Android™ (기본 브라우저) 점진적 다운로드.
모바일 Safari(iOS) HLS 적응형 비트율 스트리밍.
모바일 Chrome(iOS) HLS 적응형 비트율 스트리밍.
모바일 블랙베리® DASH* 또는 HLS 적응형 비트 전송률 스트리밍./td>
중요

*비디오에 DASH를 사용하려면 먼저 계정의 Adobe 기술 지원 팀에서 활성화해야 합니다. 다음을 참조하십시오 계정에서 DASH 활성화.

Dynamic Media 비디오 솔루션의 아키텍처

다음 그래픽은 DMGateway(Dynamic Media 하이브리드 모드)를 통해 업로드 및 인코딩되고 공개적으로 사용할 수 있도록 된 비디오의 전체 작성 워크플로우를 보여 줍니다.

chlimage_1-427

비디오용 하이브리드 게시 아키텍처

chlimage_1-428

비디오 인코딩 모범 사례

다음 Dynamic Media 인코딩 비디오 Dynamic Media을 활성화하고 비디오 클라우드 서비스를 설정한 경우 워크플로는 비디오를 인코딩합니다. This workflow captures workflow process history and failure information. Dynamic Media을 활성화하고 비디오 클라우드 서비스를 설정한 경우 Dynamic Media 인코딩 비디오 워크플로우는 비디오를 업로드할 때 자동으로 적용됩니다. (Dynamic Media을 사용하지 않는 경우 DAM 자산 업데이트 워크플로가 적용됩니다.)

소스 비디오 파일

비디오 파일을 인코딩할 때 가능한 한 높은 품질의 소스 비디오 파일을 사용하십시오. 이전에 인코딩된 비디오 파일은 이미 압축되어 있으므로 이 파일을 사용하지 마십시오. 이후에 인코딩하면 품질이 낮은 비디오가 만들어집니다.

  • Dynamic Media은 최대 길이가 30분이고 최소 해상도가 25 x 25보다 큰 주로 짧은 형식의 비디오를 지원합니다.
  • 각각 최대 15GB인 기본 소스 비디오 파일을 업로드할 수 있습니다.

다음 표에서는 소스 비디오 파일을 인코딩하기 전에 권장되는 크기, 종횡비 및 최소 비트율에 대해 설명합니다.

크기 종횡비 최소 비트 전송률
1024 X 768 4:3 대부분의 비디오에 대해 4,500kbps입니다.
1280 X 720 16:9 비디오의 움직임 양에 따라 3000 - 6000kbps입니다.
1920 X 1080 16:9 비디오의 움직임 양에 따라 6000 - 8000kbps입니다.

파일의 메타데이터 가져오기

비디오 편집 도구를 사용하여 파일의 메타데이터를 보거나 메타데이터를 가져오도록 설계된 애플리케이션을 사용하여 파일의 메타데이터를 가져올 수 있습니다. 다음은 타사 애플리케이션인 MediaInfo를 사용하여 비디오 파일의 메타데이터를 가져오는 지침입니다.

  1. 다음으로 이동 MediaInfo 다운로드.
  2. GUI 버전에 대한 설치 프로그램을 선택하고 다운로드한 다음 설치 지침을 따릅니다.
  3. 설치 후 비디오 파일(Windows에만 해당)을 마우스 오른쪽 단추로 클릭하고 MediaInfo를 선택하거나, MediaInfo를 열고 비디오 파일을 응용 프로그램으로 드래그합니다. 너비, 높이 및 fps를 포함하여 비디오 파일과 연결된 모든 메타데이터가 표시됩니다.

종횡비

기본 소스 비디오 파일에 대한 비디오 인코딩 사전 설정을 선택하거나 만들 때 사전 설정이 기본 소스 비디오 파일과 종횡비가 같은지 확인하십시오. 가로 세로 비율은 비디오 높이에 대한 너비의 비율입니다.

비디오 파일의 종횡비를 결정하려면 파일의 메타데이터를 가져오고 파일의 너비와 높이를 확인합니다(위의 파일 메타데이터 가져오기 참조). 그런 다음 이 공식을 사용하여 종횡비를 결정합니다.

width/height = 종횡비

다음 테이블에서는 공식 결과가 공통 종횡비 선택으로 변환되는 방법을 설명합니다.

공식 결과 종횡비
1.33 4:3
0.75 3:4
1.78 16:9
0.56 9:16

예를 들어 1440 너비 x 1080 높이의 비디오에는 1440/1080 또는 1.33의 종횡비가 있습니다. 이 경우 비디오 파일을 인코딩할 종횡비가 4:3인 비디오 인코딩 사전 설정을 선택합니다.

비트율

Bitrate는 비디오 재생의 1초를 구성하기 위해 인코딩되는 데이터의 양입니다. 비트율은 초당 킬로비트(Kbps)로 측정됩니다.

노트

모든 코덱은 손실 압축을 사용하기 때문에 비트율은 비디오 품질에서 가장 중요한 요소입니다. 손실 압축을 사용하면 비디오 파일을 압축할수록 품질이 저하됩니다. 이러한 이유로 다른 모든 특성(해상도, 프레임 속도 및 코덱)은 동일하며 비트율이 낮을수록 압축 파일의 품질이 떨어집니다.

비트율 인코딩을 선택할 때 선택할 수 있는 두 가지 유형이 있습니다.

  • 상수 비트율 인코딩 (CBR) - CBR 인코딩 중에 비트율 또는 초당 비트 수가 인코딩 프로세스 전체에서 동일하게 유지됩니다. CBR 인코딩은 전체 비디오에 대해 사용자 설정에 대한 설정된 데이터 속도를 유지합니다. 또한 CBR 인코딩은 품질을 위해 미디어 파일을 최적화하지 않지만 저장 공간을 절약합니다.
    전체 비디오에서 비디오에 유사한 동작 수준이 포함되어 있는 경우 CBR을 사용합니다. CBR은 비디오 컨텐츠를 스트리밍하는 데 가장 일반적으로 사용됩니다. 참조: 사용자가 추가한 비디오 인코딩 매개 변수 사용.

  • 가변 비트율 인코딩 (VBR) - VBR 인코딩은 압축기에 필요한 데이터에 따라 데이터 속도를 하향 조정하고 사용자가 설정한 상한으로 조정합니다. 이 기능은 VBR 인코딩 프로세스 중에 미디어 파일의 비트율이 미디어 파일의 비트율 요구 사항에 따라 동적으로 증가 또는 감소함을 의미합니다.
    VBR을 인코딩하는 데 시간이 더 오래 걸리지만 가장 유리한 결과를 생성합니다. 미디어 파일의 품질이 우수합니다. VBR은 비디오 컨텐츠의 HTTP 점진적 전달에 가장 일반적으로 사용됩니다.

VBR 및 CRB는 언제 사용합니까?
VBR 대 CBR을 선택할 때는 거의 항상 미디어 파일에 VBR을 사용하는 것이 좋습니다. VBR은 경쟁사 비트레이트로 고품질 파일을 제공합니다. VBR을 사용하는 경우 2회 인코딩 시 를 사용하고 최대 비트율을 대상 비디오 비트율의 1.5배로 설정해야 합니다.

비디오 인코딩 사전 설정을 선택할 때는 대상 최종 사용자의 연결 속도를 기억해야 합니다. 데이터 속도가 해당 속도의 80%인 사전 설정을 선택합니다. 예를 들어 대상 최종 사용자의 연결 속도가 1000Kbps인 경우, 비디오 데이터 속도가 800Kbps인 것이 가장 좋은 사전 설정입니다.

이 표에서는 일반적인 연결 속도의 데이터 속도를 설명합니다.

속도(Kbps) 연결 유형
256 전화 접속 연결.
800 일반적인 모바일 연결입니다. 이 연결의 경우 3G 경험에 대해 400에서 최대 800 범위의 데이터 속도를 타깃팅하십시오.
2000 일반적인 광대역 데스크탑 연결. 이 연결의 경우 800-2000Kbps 범위에서 데이터 전송률을 타겟팅하고 대부분의 타겟은 평균 1200-1500Kbps입니다.
5000 일반적인 고속 광대역 연결입니다. 대부분의 소비자는 이 속도로 비디오를 전송할 수 없으므로 이 상위 범위의 인코딩은 권장되지 않습니다.

해결

해결 방법 비디오 파일의 높이와 너비를 픽셀 단위로 설명합니다. 대부분의 소스 비디오는 고해상도로 저장됩니다(예: 1920 x 1080). 스트리밍을 위해 소스 비디오는 더 작은 해상도(640 x 480 이하)로 압축된다.

해상도 및 데이터 속도는 비디오 품질을 결정하는 두 가지 통합 연결 요소입니다. 동일한 비디오 품질을 유지하려면 비디오 파일의 픽셀 수가 많을수록(해상도가 높을수록) 데이터 전송률이 높아야 합니다. 예를 들어 320 x 240 해상도 및 640 x 480 해상도 비디오 파일의 프레임당 픽셀 수를 생각해 보십시오.

해결 프레임당 픽셀
320 x 240 76,800
640 x 480 307,200

640 x 480 파일은 프레임당 픽셀 수가 4배 더 많습니다. 이러한 두 가지 예제 해상도에 대해 동일한 데이터 전송률을 달성하려면 640 x 480 파일에 4배의 압축을 적용하여 비디오의 품질을 낮출 수 있습니다. 따라서 비디오 데이터 속도가 250Kbps이면 320x240 해상도에서는 고화질을 볼 수 있지만 640x480 해상도에서는 고화질을 볼 수 없습니다.

일반적으로, 높은 데이터 전송률을 사용할수록 비디오가 더 잘 보이며, 높은 해상도를 사용할수록 낮은 해상도와 비교하여 보기 품질을 유지해야 하는 데이터 전송률이 높아집니다.

해상도와 데이터 속도는 연결되어 있으므로 비디오를 인코딩할 때는 두 가지 옵션이 있습니다.

  • 데이터 속도를 선택한 다음 선택한 데이터 속도에 가장 잘 맞는 가장 높은 해상도로 인코딩합니다.
  • 해상도를 선택한 다음 선택한 해상도로 고품질 비디오를 구현하는 데 필요한 데이터 속도로 인코딩합니다.

기본 소스 비디오 파일에 대한 비디오 인코딩 사전 설정을 선택(또는 생성)할 때 다음 표를 사용하여 올바른 해상도를 타겟팅합니다.

해결 높이(픽셀) 화면 크기
240p 240 작은 화면
300p 300 일반적으로 모바일 장치용 작은 화면
360p 360 작은 화면
480p 480 중간 화면
720p 720 대형 화면
1080p 1080 HD 대형 화면

Fps(초당 프레임)

미국 및 일본에서는 대부분의 비디오가 29.97fps(초당 프레임)로 촬영되며, 유럽에서는 대부분의 비디오가 25fps로 촬영됩니다. 필름은 24fps로 촬영됩니다.

기본 소스 비디오 파일의 fps 속도와 일치하는 비디오 인코딩 사전 설정을 선택합니다. 예를 들어 기본 소스 비디오가 25fps인 경우 25fps의 인코딩 사전 설정을 선택합니다. 기본적으로 모든 사용자 지정 인코딩은 기본 소스 비디오 파일의 fps를 사용합니다. 따라서 비디오 인코딩 사전 설정을 만들 때 fps 설정을 명시적으로 지정할 필요가 없습니다.

비디오 인코딩 차원

최적의 결과를 얻으려면 소스 비디오가 모든 인코딩된 비디오의 전체 배수가 되도록 인코딩 차원을 선택하십시오.

이 비율을 계산하려면 소스 너비를 인코딩된 너비로 나누어 너비 비율을 가져옵니다. 그런 다음 인코딩된 높이로 소스 높이를 나누어 높이 비율을 가져옵니다.

결과 비율이 전체 정수인 경우 비디오의 크기가 최적으로 조정됨을 의미합니다. 결과 비율이 전체 정수가 아닌 경우 남은 픽셀 아티팩트를 디스플레이에 남겨 비디오 품질에 영향을 줍니다. 이 효과는 비디오에 텍스트가 있을 때 가장 두드러집니다.

예를 들어 소스 비디오가 1920 x 1080이라고 가정합니다. 다음 표에서 세 개의 인코딩된 비디오는 사용할 최적의 인코딩 설정을 제공합니다.

비디오 유형 너비 x 높이 폭 비율 높이 비율
소스 1920x1080 1 1
인코딩됨 960 x 540 2 2
인코딩됨 640 x 360 3 3
인코딩됨 480 x 270 4 4

인코딩된 비디오 파일 형식

Dynamic Media에서는 MP4 H.264 비디오 인코딩 사전 설정을 사용하는 것이 좋습니다. MP4 파일은 H.264 비디오 코덱을 사용하기 때문에 고품질의 비디오를 제공하지만 압축된 파일 크기입니다.

계정에서 DASH 활성화

DASH(Digital Adaptive Streaming over HTTP)는 비디오 스트리밍에 대한 국제 표준이며 다양한 비디오 뷰어에서 널리 채택됩니다. 계정에서 DASH가 활성화되면 적응형 비디오 스트리밍을 위해 DASH 또는 HLS 중에서 선택할 수 있는 옵션이 제공됩니다. 또는 다음과 같은 경우 플레이어 간에 자동 전환으로 두 옵션을 모두 선택할 수 있습니다 auto 는 뷰어 사전 설정에서 재생 유형으로 선택됩니다.

계정에서 DASH를 활성화하면 다음과 같은 몇 가지 주요 이점이 있습니다.

  • 적응형 비트율 스트리밍을 위한 DASH 스트림 비디오 패키지 이러한 방식은 전달의 효율성을 높이는 결과를 초래한다. 적응형 스트리밍은 고객에게 최상의 시청 환경을 제공합니다.
  • 브라우저가 HLS와 DASH 스트리밍 간 전환된 Dynamic Media 플레이어로 스트리밍을 최적화하여 최상의 서비스 품질을 보장합니다. Safari 브라우저를 사용하면 비디오 플레이어가 HLS로 자동 전환됩니다.
  • 비디오 뷰어 사전 설정을 편집하여 선호하는 스트리밍 방법(HLS 또는 DASH)을 구성할 수 있습니다.
  • 최적화된 비디오 인코딩은 DASH 기능을 활성화하는 동안 추가 저장소가 사용되지 않도록 합니다. 비디오 저장 비용들을 최적화하기 위해 HLS 및 DASH 둘 모두에 대해 단일 비디오 인코딩들의 세트가 생성된다.
  • 고객이 보다 쉽게 비디오 게재를 이용할 수 있도록 지원합니다.
  • API를 통해 스트리밍 URL도 가져옵니다.

계정에서 DASH를 활성화하려면 두 단계가 필요합니다.

  • DASH를 사용하도록 Dynamic Media을 구성하여 쉽게 수행할 수 있습니다.
  • 사용자가 만들고 제출한 Adobe 고객 지원 사례를 통해 수행되는 DASH를 사용하도록 Experience Manager 6.5를 구성합니다.

계정에서 DASH를 활성화하려면:

  1. Dynamic Media 구성 - Experience Manager 6.5의 Dynamic Media에서 https://localhost:4502/system/console/configMgr.

  2. 검색 대상 AEM Assets Dynamic Media 비디오 고급 스트리밍 기능 플래그.

  3. 대시를 활성화(켜기)하려면 확인란을 선택합니다.

  4. 저장​을 선택합니다.

  5. Experience Manager 6.5 구성 - Admin Console을 사용하여 새 지원 사례 만들기 시작.

  6. 지원 사례를 생성하려면 다음 정보를 제공하면서 지침을 따르십시오.

    • 기본 담당자 이름, 이메일, 전화.
    • Dynamic Media 계정 이름.
    • Experience Manager 6.5에서 대시를 활성화하도록 지정합니다.
  7. Adobe 고객 지원 팀은 요청이 제출된 순서에 따라 DASH 고객 대기 목록에 사용자를 추가합니다.

  8. Adobe이 요청을 처리할 준비가 되면 고객 지원 센터에서 연락하여 DASH 활성화의 목표 날짜를 조정하고 설정합니다.

  9. 완료 후 고객 지원 센터에서 알림을 받습니다.

  10. 사용자 만들기 비디오 뷰어 사전 설정 평상시처럼

비디오 보고서 보기

노트

비디오 보고서는 Dynamic Media - 하이브리드 모드를 실행하는 경우에만 사용할 수 있습니다.

비디오 보고서에는 지정된 시간 동안 몇 개의 집계 지표가 표시되어 이를 모니터링하는 데 도움이 됩니다 게시됨 개별 및 집계 비디오는 예상대로 수행됩니다. 전체 웹 사이트에 게시된 모든 비디오에 대해 다음 상위 지표 데이터가 집계됩니다.

  • 비디오 시작
  • 완료율
  • 비디오의 평균 시간
  • 비디오의 총 시간
  • 방문당 비디오

모든 테이블 게시됨 전체 비디오 시작에 따라 웹 사이트에서 가장 많이 본 비디오를 추적할 수 있도록 비디오도 나열됩니다.

목록에서 비디오 이름을 탭하면 비디오의 대상 유지(드롭다운) 보고서를 라인 차트 형태로 보여줍니다. 이 차트는 비디오 재생 중 주어진 시간 동안의 보기 수를 표시합니다. 비디오를 재생하면 세로 막대가 플레이어의 시간 표시기와 동기화되어 추적됩니다. 라인 차트 데이터의 드롭은 대상이 비관심에서 이탈하는 위치를 나타냅니다.

비디오가 Adobe Experience Manager Dynamic Media 외부에서 인코딩된 경우 대상 유지 (드롭오프) 차트 및 테이블의 재생 비율 데이터를 사용할 수 없습니다.

참조: Dynamic Media Cloud Services 구성.

노트

추적 및 보고 데이터는 전적으로 Dynamic Media의 자체 비디오 플레이어 및 관련 비디오 플레이어 사전 설정 사용을 기반으로 합니다. 따라서 다른 비디오 플레이어에서 재생되는 비디오를 추적하고 보고할 수 없습니다.

기본적으로 비디오 보고서를 처음 입력할 때 보고서에는 현재 월의 첫 번째 날짜부터 시작하여 현재 월의 날짜로 끝나는 비디오 데이터가 표시됩니다. 그러나 고유한 날짜 범위를 지정하여 기본 날짜 범위를 재정의할 수 있습니다. 다음에 비디오 보고서를 입력할 때 지정한 날짜 범위가 사용됩니다.

비디오 보고서가 올바르게 작동하려면 Dynamic Media Cloud Services이 구성될 때 보고서 세트 ID가 자동으로 만들어집니다. 동시에 보고서 세트 ID는 게시 서버에 푸시되므로 에셋을 미리 볼 때 URL 복사 기능에 사용할 수 있습니다. 그러나 이 기능을 사용하려면 게시 서버가 이미 설정되어 있어야 합니다. 게시 서버가 설정되지 않은 경우 를 게시하여 비디오 보고서를 볼 수 있습니다. 그러나 Dynamic Media 클라우드 구성으로 돌아가 을 탭해야 합니다 확인.

비디오 보고서를 보려면 다음 작업을 수행하십시오.

  1. Experience Manager의 왼쪽 상단 모서리에서 Experience Manager 로고를 탭한 다음 왼쪽 레일에서 을 누릅니다 도구 (망치 아이콘) > 에셋 > 비디오 보고서.

  2. 비디오 보고서 페이지에서 다음 중 하나를 수행합니다.

    • 오른쪽 상단 모서리 근처에서 을 누릅니다. 비디오 보고서 새로 고침 아이콘.
      보고서 종료 날짜가 현재 날짜인 경우에만 새로 고침 을 사용합니다. 이렇게 하면 보고서를 마지막으로 실행한 이후 발생한 비디오 추적이 표시됩니다.

    • 오른쪽 상단 모서리 근처에서 을 누릅니다. 날짜 선택 아이콘.
      비디오 데이터를 표시할 시작 및 종료 날짜 범위를 지정한 다음 을 누릅니다 보고서 실행.

    [최상위 지표] 그룹 상자는 모든 지표에 대한 다양한 집계 측정을 식별합니다 게시됨 를 클릭합니다.

  3. 가장 많이 게시된 비디오를 나열하는 표에서 비디오 이름을 탭하여 비디오를 재생하고 비디오의 대상 유지(드롭오프) 보고서도 확인합니다.

Dynamic Media HTML5 뷰어 SDK를 사용하여 만든 비디오 뷰어를 기반으로 비디오 보고서를 봅니다

Dynamic Media에서 제공하는 기본 제공 비디오 뷰어를 사용하거나 기본 제공 비디오 뷰어를 기반으로 사용자 지정 뷰어 사전 설정을 만든 경우, 비디오 보고서를 보는 데 추가 단계가 필요하지 않습니다. 그러나 HTML5 뷰어 SDK API를 기반으로 고유한 비디오 뷰어를 만든 경우 다음 단계를 사용하여 비디오 뷰어가 추적 이벤트를 Dynamic Media 비디오 보고서에 보내는지 확인하십시오.

사용 Adobe Dynamic Media 뷰어 참조 안내서HTML5 뷰어 SDK API 자신만의 비디오 뷰어를 만들 수 있습니다.

Dynamic Media HTML Viewer 5 SDK를 사용하여 만든 비디오 뷰어를 기반으로 비디오 보고서를 보려면 다음 작업을 수행하십시오.

  1. 게시된 비디오 자산으로 이동합니다.

  2. Near the upper-left corner of the asset's page, from the drop-down list, select Viewers.

  3. 비디오 뷰어 사전 설정을 선택하고 포함 코드를 복사합니다.

  4. 포함 코드에서 다음을 사용하여 줄을 찾습니다.

    videoViewer.setParam("config2", "<value>");

    다음 config2 매개 변수를 사용하면 HTML5 뷰어에서 추적할 수 있습니다. 또한 비디오 보고 및 고객별 Adobe Analytics 구성에 대한 구성 정보가 포함된 회사별 사전 설정입니다.

    The correct value for the config2 parameter is found in both the Embed Code and in the copy URL function. In the URL from the copy URL command, the parameter to look for is &config2=<value> . The value is almost always companypreset, but in some instances it can also be companypreset-1, companypreset-2, and so forth.

  5. 사용자 지정 비디오 뷰어 코드에서 다음을 수행하여 AppMeasurementBridge .jsp 를 뷰어 페이지에 추가합니다.

    • 먼저, 필요한 항목이 있는지 확인합니다. &preset 매개 변수.

      다음과 같은 경우 config2 매개 변수: companypreset, 다음을 수행합니다. 아님 필요 &preset=parameter.

      If config2 는 기타 다른 매개 변수이며, 사전 설정 매개 변수를 config2 매개 변수. 예를 들어 다음과 같습니다. config2=companypreset-2, 추가 &param2=companypreset-2 AppMeasurementBridge.jsp URL에 연결합니다.

    • 그런 다음 AppMeasurementBridge.jsp 스크립트를 추가합니다.

      <script language="javascript" type="text/javascript" src="https://s7d1.scene7.com/s7viewers/AppMeasurementBridge.jsp?company=robindallas&preset=companypreset-2"></script>

  6. 다음을 수행하여 TrackingManager 구성 요소를 만듭니다.

    • 통화 후 s7sdk.Util.init();를 클릭하고 다음을 추가하여 이벤트를 추적할 TrackingManager 인스턴스를 생성합니다.

      var trackingManager = new s7sdk.TrackingManager();

    • 다음을 수행하여 구성 요소를 TrackingManager에 연결합니다.

      다음에서 s7sdk.Event.SDK_READY 이벤트 처리기에서 추적할 구성 요소를 TrackingManager에 연결합니다.

      예를 들어 구성 요소가 videoPlayer, 추가

      trackingManager.attach(videoPlayer);

      를 클릭하여 구성 요소를 trackingManager에 연결합니다. 페이지에서 여러 뷰어를 추적하려면 여러 추적 관리자 구성 요소를 사용합니다.

    • 다음을 추가하여 AppMeasurementBridge 개체를 만듭니다.

      var appMeasurementBridge = new AppMeasurementBridge(); appMeasurementBridge.setVideoPlayer(videoPlayer);
      
    • 다음을 추가하여 추적 함수를 추가합니다.

      trackingManager.setCallback(appMeasurementBridge.track,
       appMeasurementBridge);
      

    appMeasurementBridge 개체에는 내장 추적 함수가 있습니다. 하지만 고유한 를 제공하여 여러 추적 시스템 또는 기타 기능을 지원할 수 있습니다.

비디오에 폐쇄 캡션 또는 자막 추가

단일 비디오 또는 응용 비디오 세트에 자막 기능을 추가하여 비디오를 글로벌 시장으로 확장할 수 있습니다. 폐쇄 캡션을 추가하면 오디오를 더빙하거나 원어민을 사용하여 각 언어의 오디오를 다시 녹음할 필요가 없습니다. 이 비디오는 녹화된 언어로 재생됩니다. 외국어 자막이 등장해 다른 언어를 사용하는 사람들도 여전히 오디오 부분을 이해할 수 있다.

또한 자막 기능을 통해 귀가 들리지 않거나 난청인 사람의 접근성을 높일 수 있습니다.

노트

사용하는 비디오 플레이어는 캡션 표시를 지원해야 합니다.

참조: Dynamic Media의 접근성.

Dynamic Media은 캡션 파일을 JSON(JavaScript Object Notation) 형식으로 변환합니다. 이 전환은 JSON 텍스트를 웹 페이지에 숨김이나 비디오의 전체 트랜스크립트로 포함할 수 있음을 의미합니다. 그런 다음 검색 엔진은 콘텐츠를 크롤링하고 색인화하여 비디오를 보다 쉽게 검색하고 고객에게 비디오 콘텐츠에 대한 추가 세부 정보를 제공할 수 있습니다.

다음을 참조하십시오 정적(이미지가 아닌) 콘텐츠 제공 다음에서 Dynamic Media 이미지 제공 및 렌더링 API 도움말 url에서 JSON 함수를 사용하는 방법에 대한 자세한 정보입니다.

비디오에 캡션 또는 자막을 추가하려면:

  1. 서드파티 애플리케이션 또는 서비스를 사용하여 비디오 자막/자막 파일을 만듭니다.

    만든 파일이 WebVTT(Web Video Text Track) 표준을 따르는지 확인합니다. 캡션 파일 이름 확장자는 .vtt입니다. WebVTT 캡션 표준에 대한 자세한 내용을 볼 수 있습니다.

    다음을 참조하십시오 WebVTT: 웹 비디오 텍스트 트랙 형식.

    Dynamic Media 외부에서 캡션/자막 파일을 작성하는 데 사용할 수 있는 무료 및 고급 도구와 서비스가 모두 있습니다. 예를 들어, 다음 무료 온라인 캡션 작성 및 편집 도구를 사용하여 스타일이 없는 간단한 비디오 캡션 파일을 만들 수 있습니다.

    WebVTT 캡션 메이커

    최상의 결과를 얻으려면 Internet Explorer 9 이상, Google Chrome 또는 Safari에서 도구를 사용하십시오.

    도구에서 비디오 파일의 URL 입력 필드에서 비디오 파일의 복사한 URL을 붙여 넣은 다음 로드. 다음을 참조하십시오 에셋에 대한 URL 얻기 비디오 파일 자체에 대한 URL을 가져와서 비디오 파일 필드의 URL 입력. Internet Explorer, Chrome, or Safari can then natively play back the video.

    이제 사이트의 화면 지침을 따라 WebVTT 파일을 작성하고 저장합니다. 완료되면 캡션 파일 내용을 복사하여 일반 텍스트 편집기에 붙여 넣은 다음 .vtt 파일 이름 확장명.

    노트

    여러 언어로 비디오 자막을 전체적으로 지원하려면 WebVTT 표준을 사용하려면 지원하려는 각 언어에 대해 별도의 .vtt 파일과 호출을 만들어야 합니다.

    일반적으로 캡션 VTT 파일의 이름을 비디오 파일과 같은 이름으로 지정하고 언어 로케일(예: -EN, -FR 또는 -DE)과 함께 추가합니다. 이렇게 하면 기존 웹 컨텐츠 관리 시스템을 사용하여 비디오 URL의 생성을 자동화하는 데 도움이 될 수 있습니다.

  2. Experience Manager에서 WebVTT 캡션 파일을 DAM에 업로드합니다.

  3. 다음 위치로 이동 게시됨 업로드한 캡션 파일과 연결할 비디오 자산입니다.

    Remember that URLs are only available to copy after you have first published the assets.

    다음을 참조하십시오 자산 게시.

  4. 다음 중 하나를 수행하십시오.

    • 팝업 비디오 뷰어 환경을 보려면 을 누릅니다. URL. URL 대화 상자에서 을 선택하고 URL을 클립보드로 복사한 다음 URL을 지나 단순 텍스트 편집기로 이동합니다. 복사한 비디오의 URL을 다음 구문과 함께 추가합니다.

      &caption=<server_path>/is/content/<path_to_caption.vtt_file,1>

      다음을 참고하십시오. ,1 캡션 경로의 끝입니다. 다음 바로 뒤 .vtt 경로의 파일 이름 확장자를으로 설정하여 비디오 플레이어 막대에서 선택 캡션 단추를 활성화(켜기)하거나 비활성화(끄기)할 수 있습니다. ,1 또는 ,0, 각각

    • 포함된 비디오 뷰어 환경을 보려면 다음을 누르십시오. 포함 코드. 포함 코드 대화 상자에서 을 선택하고 포함 코드를 클립보드에 복사한 다음 코드를 간단한 텍스트 편집기에 붙여넣습니다. 복사된 포함 코드를 다음 구문과 함께 추가합니다.

      videoViewer.setParam("caption","<path_to_caption.vtt_file,1>");

      다음을 참고하십시오. ,1 캡션 경로의 끝입니다. 다음 바로 뒤 .vtt 경로의 파일 이름 확장자를으로 설정하여 비디오 플레이어 막대에서 선택 캡션 단추를 활성화(켜기)하거나 비활성화(끄기)할 수 있습니다. ,1 또는 ,0, 각각

비디오에 챕터 마커 추가

장 마커를 단일 비디오나 응용 비디오 세트에 추가하여 긴 양식 비디오를 더 쉽게 보고 탐색할 수 있습니다. 사용자가 비디오를 재생할 때 비디오 타임라인에서 챕터 마커(비디오 스크러버라고도 함)를 클릭하여 관심 영역으로 쉽게 이동할 수 있습니다. 또는 새로운 콘텐츠, 데모 및 튜토리얼로 바로 이동할 수 있습니다.

노트

사용되는 비디오 플레이어는 챕터 마커 사용을 지원해야 합니다. Dynamic Media 비디오 플레이어는 챕터 마커를 지원하지만 서드파티 비디오 플레이어를 사용하면 지원하지 않을 수 있습니다.

원하는 경우 비디오 뷰어 사전 설정을 사용하는 대신 챕터로 사용자 지정 비디오 뷰어를 만들고 브랜드화할 수 있습니다. 챕터 탐색으로 자신만의 HTML5 뷰어를 만드는 방법에 대한 지침은 Adobe HTML5 뷰어 SDK API의 클래스 아래 "수정자를 사용하여 동작 사용자 지정" 제목을 참조하십시오 s7sdk.video.VideoPlayers7sdk.video.VideoScrubber. 다음을 참조하십시오. HTML5 뷰어 SDK API 설명서를 참조하십시오.

캡션을 만드는 것과 같은 방법으로 비디오에 대한 챕터 목록을 만듭니다. 즉, WebVTT 파일을 만듭니다. 그러나 이 파일은 사용 중인 WebVTT 캡션 파일과 별개여야 합니다. 캡션과 챕터를 하나의 WebVTT 파일로 결합할 수 없습니다.

다음 샘플을 장 탐색으로 WebVTT 파일을 만드는 데 사용하는 형식의 예로 사용할 수 있습니다.

비디오 챕터 탐색이 있는 WebVTT 파일

WEBVTT
Chapter 1
00:00.000 --> 01:04.364
The bicycle store behind it all.
Chapter 2
01:04.364 --> 02:00.944
Creative Cloud.
Chapter 3
02:00.944 --> 03:02.937
Ease of management for a working solution.
Chapter 4
03:02.937 --> 03:35.000
Cost-efficient access to rapidly evolving technology.

위의 예에서 Chapter 1 는 큐 식별자이며 선택 사항입니다. 의 큐 시간 00:00:000 --> 01:04:364 챕터의 시작 시간과 종료 시간을 지정합니다( 00:00:000 포맷. 마지막 세 자릿수는 밀리초이며 다음으로 남겨둘 수 있습니다. 000, 원하는 경우 의 챕터 제목 The bicycle store behind it all 는 챕터 내용에 대한 실제 설명입니다. 사용자가 비디오 타임라인의 시각적 큐 포인트 위에 마우스 포인터를 놓으면 큐 식별자, 시작 큐 시간 및 챕터 제목이 모두 비디오 플레이어 팝업에 나타납니다.

HTML5 비디오 뷰어를 사용하고 있으므로, 만든 챕터 파일이 WebVTT(Web Video Text Tracks) 표준을 따르는지 확인하십시오. 챕터 파일 확장명은 입니다. .vtt. WebVTT 캡션 표준에 대한 자세한 내용을 볼 수 있습니다.

다음을 참조하십시오 WebVTT: 웹 비디오 텍스트 트랙 형식

비디오 챕터 탐색을 추가하려면:

  1. 저장 .vtt 장 제목 텍스트에서 문자 렌디션에 문제가 발생하지 않도록 UTF8 인코딩으로 된 파일입니다.

    일반적으로 챕터 VTT 파일의 이름을 비디오 파일과 같은 이름으로 지정하고 챕터와 함께 추가합니다. 이렇게 하면 기존 웹 컨텐츠 관리 시스템을 사용하여 비디오 URL의 생성을 자동화하는 데 도움이 될 수 있습니다.

  2. Experience Manager에서 WebVTT 챕터 파일을 업로드합니다.

    다음을 참조하십시오 에셋 업로드.

  3. 다음 중 하나를 수행하십시오.

    팝업 비디오 뷰어 환경을 위한
    1. 다음 위치로 이동 게시됨 업로드한 챕터 파일과 연결할 비디오 에셋입니다. Remember that URLs are only available to copy after you have first published the assets. 다음을 참조하십시오 자산을 게시하는 중입니다.
    2. 드롭다운 메뉴에서 을(를) 클릭하거나 탭합니다 뷰어.
    3. 왼쪽 레일에서 비디오 뷰어 사전 설정 이름을 탭하거나 클릭합니다. 비디오 미리보기가 별도의 페이지로 열립니다.
    4. 왼쪽 레일에서 하단의 을(를) 클릭합니다. URL.
    5. URL 대화 상자에서 을 선택하고 URL을 클립보드에 복사한 다음 URL을 지나 단순 텍스트 편집기로 이동합니다.
    6. 복사한 비디오 URL을 장 파일에 복사한 URL과 연결할 수 있도록 다음 구문과 함께 추가합니다.

      &navigation=<full_copied_URL_path_to_chapter_file.vtt>
    포함된 비디오 뷰어 경험용
    1. 다음 위치로 이동 게시됨 업로드한 챕터 파일과 연결할 비디오 에셋입니다. Remember that URLs are only available to copy after you have first published the assets. 다음을 참조하십시오 자산을 게시하는 중입니다.
    2. 드롭다운 메뉴에서 을(를) 클릭하거나 탭합니다 뷰어.
    3. 왼쪽 레일에서 비디오 뷰어 사전 설정 이름을 탭하거나 클릭합니다. 비디오 미리보기가 별도의 페이지로 열립니다.
    4. 왼쪽 레일에서 하단의 을(를) 클릭합니다. 포함.
    5. [코드 포함] 대화 상자에서 을 선택하고 전체 코드를 클립보드에 복사한 다음 단순 텍스트 편집기에 붙여넣습니다.
    6. 비디오의 포함 코드를 다음 구문과 함께 추가하면 복사한 URL을 챕터 파일에 연결할 수 있습니다.

      videoViewer.setParam("navigation","<full_copied_URL_path_to_chapter_file.vtt>"

Dynamic Media - Scene7 모드의 비디오 썸네일 정보

비디오 썸네일은 고객에게 비디오를 나타내는 이미지 에셋 또는 비디오 프레임의 축소된 버전입니다. 썸네일은 고객이 비디오를 선택하도록 유도하는 역할을 합니다.

Experience Manager의 모든 비디오에는 연결된 썸네일이 있어야 합니다. 썸네일을 바꾸지 않으면 썸네일을 삭제할 수 없습니다. 기본적으로 Experience Manager에 비디오를 업로드할 때 첫 번째 프레임이 썸네일로 사용됩니다. 그러나 예를 들어 브랜딩 목적 또는 시각적 검색을 위해 썸네일을 사용자 정의할 수 있습니다. 비디오 썸네일을 사용자 지정하면 비디오를 재생하고 사용할 프레임에서 일시 정지할 수 있습니다. 또는 이미 업로드한 이미지 자산을 선택할 수 있습니다. 게시됨 을 참조하십시오.

비디오에서 선택하는 사용자 지정 비디오 썸네일 이미지는 추출되지 않고 별도의 자산으로 DAM에 저장됩니다. 그러나 기존 이미지 에셋에서 선택하는 사용자 지정 비디오 썸네일은 JCR에 저장됩니다. 선택한 에셋의 경로는 다음 예제 경로와 같이 비디오 에셋의 노드 아래에 저장됩니다.

/content/dam/*<folder_name*>/<*video_name*>/jcr:content/manualThumbnail

비디오 축소판을 사용자 지정하는 기능은 비디오가 있는 폴더에 비디오 프로필을 적용한 후에만 사용할 수 있습니다.

참조: Dynamic Media - 하이브리드 모드의 비디오 썸네일 정보.

사용자 지정 비디오 썸네일 추가

이 단계는 "Dynamicmedia_Scene7" 모드에서 실행되는 Dynamic Media에만 적용됩니다.

사용자 지정 비디오 썸네일을 추가하려면:

  1. 다음을 이미 수행했는지 확인합니다.

  2. 썸네일 이미지를 변경하고자 하는 업로드된 비디오 자산으로 이동합니다.

  3. 자산 선택 모드에서 다음 중 하나를 수행합니다. 목록 보기 또는 카드 보기​비디오 자산을 탭합니다.

  4. 도구 모음에서 을 누릅니다. 속성 아이콘(안에 "i"가 있는 원)

  5. 비디오의 속성 페이지에서 을 누릅니다 썸네일 변경.

  6. 썸네일 변경 페이지에서 다음 중 하나를 수행합니다.

    • 비디오의 프레임을 새 썸네일로 사용하려면 다음 작업을 수행하십시오.

      • 도구 모음에서 을 누릅니다. 비디오에서 프레임 선택.
      • 재생 버튼을 탭한 다음 비디오의 새 썸네일로 캡처할 프레임에서 일시 중지 버튼을 탭합니다.
    • 이미지 자산을 새 썸네일로 사용하려면 다음을 수행하십시오.

      • 도구 모음에서 을 누릅니다. 에셋에서 썸네일 선택.
      • 누르기 썸네일 선택.
      • 사용할 이전에 업로드되고 게시된 이미지 자산으로 이동합니다. 에셋의 크기가 자동으로 조정되어 비디오의 썸네일 이미지로 사용됩니다.
      • 이미지 에셋을 선택한 다음 을 누릅니다 선택.
  7. 썸네일 변경 페이지에서 을 누릅니다. 변경 내용 저장.

  8. 비디오의 속성 페이지에서 오른쪽 상단 모서리에서 을 누릅니다 저장 및 닫기.

Dynamic Media - 하이브리드 모드의 비디오 썸네일 정보

Dynamic Media에서 자동으로 생성된 10개의 썸네일 이미지 중 하나를 선택하여 비디오에 추가할 수 있습니다. Experience Manager Sites, Experience Manager Mobile 또는 Experience Manager Screens의 작성 환경에서 Dynamic Media 구성 요소와 함께 비디오 에셋을 사용하면 비디오 플레이어에 선택한 썸네일이 표시됩니다. 썸네일은 전체 비디오의 콘텐츠를 가장 잘 나타내고 사용자가 재생 버튼을 클릭하도록 유도하는 정적 그림의 역할을 합니다.

Dynamic Media은 비디오의 총 시간을 기반으로 10개의(기본) 썸네일 이미지를 캡처합니다. 이미지는 비디오에 1%, 11%, 21%, 31%, 41%, 51%, 61%, 71%, 81%, 및 91%로 캡처된다. 10개의 축소판은 나중에 다른 축소판을 선택하기로 결정하는 경우 시리즈를 다시 생성할 필요가 없다는 것을 의미합니다. 10개의 썸네일 이미지를 미리 본 다음 비디오에 사용할 이미지를 선택합니다. 기본값으로 변경하려면 CRXDE Lite을 사용하여 썸네일 이미지가 생성되는 시간 간격을 구성할 수 있습니다. 예를 들어, 비디오에서 4개의 균일한 간격의 썸네일 이미지 시리즈만 생성하려는 경우 간격 시간을 24%, 49%, 74% 및 99%로 구성할 수 있습니다.

이상적으로는 비디오를 업로드한 후 웹 사이트에 비디오를 게시하기 전에 언제든지 비디오 썸네일을 추가할 수 있습니다.

원하는 경우 Dynamic Media에서 생성한 썸네일을 사용하는 대신 비디오를 나타내는 사용자 정의 썸네일을 업로드하도록 선택할 수 있습니다. 예를 들어 비디오 제목, 눈길을 끄는 열기 이미지 또는 비디오에서 캡처한 특정 이미지가 있는 사용자 정의 썸네일 이미지를 만들 수 있습니다. 업로드하는 사용자 지정 비디오 썸네일 이미지의 해상도는 최대 1280 x 720픽셀(최소 너비 640픽셀)이며 2MB보다 커야 합니다.

참조: Dynamic Media - Scene7 모드의 비디오 썸네일 정보.

비디오 썸네일 추가

이 단계는 하이브리드 모드에서 실행되는 Dynamic Media에만 적용됩니다.

비디오 썸네일을 추가하려면:

  1. 비디오 썸네일을 추가할 업로드된 비디오 에셋으로 이동합니다.

  2. 자산 선택 모드에서 목록 보기 또는 카드 보기에서 비디오 자산을 탭합니다.

  3. 도구 모음에서 을 누릅니다. 속성 보기 아이콘(안에 "i"가 있는 원)

  4. 비디오의 속성 페이지에서 을 누릅니다 썸네일 변경.

  5. 썸네일 변경 페이지의 도구 모음에서 를 누릅니다 프레임 선택.

    Dynamic Media은 사용자가 사용자 지정한 기본 시간 간격 또는 시간 간격을 기반으로 하여 비디오에서 일련의 썸네일 이미지를 생성합니다.

  6. 생성된 썸네일 이미지를 미리 본 다음, 비디오에 추가할 이미지를 선택합니다.

  7. 누르기 변경 내용 저장.

    선택한 썸네일을 사용하도록 비디오의 썸네일 이미지가 업데이트됩니다. 나중에 썸네일 이미지를 변경하기로 결정하는 경우 썸네일 변경 페이지를 만들고 새 페이지를 선택합니다.

    새 기본 시간 간격을 구성하거나 새 비디오를 업로드하여 기존 비디오를 교체하는 경우 Dynamic Media에서 썸네일을 다시 생성하도록 하십시오.

    다음을 참조하십시오 비디오 썸네일이 생성되는 기본 시간 간격을 구성합니다..

비디오 썸네일이 생성되는 기본 시간 간격을 구성합니다.

새 기본 시간 간격을 구성하고 저장하면 변경 사항이 나중에 업로드하는 비디오에만 자동으로 적용됩니다. 이전에 업로드한 비디오에는 새 기본값이 자동으로 적용되지 않습니다. 기존 비디오의 경우 썸네일을 다시 생성해야 합니다.

다음을 참조하십시오 비디오 썸네일 추가.

비디오 썸네일이 생성되는 기본 시간 간격을 구성하려면 다음 작업을 수행하십시오.

  1. Experience Manager에서 을 누릅니다. 도구 > 일반 > CRXDE Lite.

  2. CRXDE Lite 페이지의 왼쪽에 있는 디렉토리 패널에서 로 이동합니다. o etc/dam/imageserver/configuration/jcr:content/settings.

    디렉터리 패널이 표시되지 않는 경우 홈 탭 왼쪽에 있는 >> 아이콘을 탭합니다.

  3. 오른쪽 아래 패널의 속성 탭에서 을 두 번 누릅니다 thumbnailtime.

  4. 다음에서 썸네일 시간 편집 대화 상자에서 텍스트 필드를 사용하여 간격 값을 백분율로 입력합니다.

    • 하나 이상의 간격 값 필드를 추가하려면 더하기 기호(+) 아이콘을 탭합니다. 필요한 경우 대화 상자 하단으로 스크롤하여 아이콘을 확인합니다.
    • 목록에서 삭제하려면 간격 값 필드 오른쪽에 있는 빼기 기호(-) 아이콘을 탭합니다.
    • 간격 값을 재정렬하려면 위쪽 화살표 아이콘과 아래쪽 화살표 아이콘을 누릅니다.
  5. 누르기 확인 속성 탭으로 돌아갑니다.

  6. CRXDE Lite 페이지의 왼쪽 상단 모서리 근처에서 을 누릅니다 모두 저장​을 클릭한 다음 왼쪽 상단의 Back Home 아이콘을 탭하여 Experience Manager 로 돌아갑니다.

    다음을 참조하십시오 비디오 썸네일 추가.

사용자 지정 비디오 썸네일 추가

이 단계는 하이브리드 모드에서 실행되는 Dynamic Media에만 적용됩니다.

사용자 지정 비디오 썸네일을 추가하려면:

  1. 사용자 지정 비디오 썸네일을 추가하려는 업로드된 비디오 자산으로 이동합니다.

  2. 자산 선택 모드에서 목록 보기 또는 카드 보기에서 비디오 자산을 탭합니다.

  3. 도구 모음에서 을 누릅니다. 속성 보기 아이콘(안에 "i"가 있는 원)

  4. 비디오의 속성 페이지에서 을 누릅니다 썸네일 변경.

  5. 썸네일 변경 페이지의 도구 모음에서 를 누릅니다 새 썸네일 업로드.

  6. 사용할 썸네일 이미지로 이동하여 선택한 다음 를 탭합니다 열기 Experience Manager에 이미지 업로드를 시작합니다. 업로드 후 이미지를 게시하십시오.

  7. 이미지를 성공적으로 업로드하고 게시한 후 썸네일 변경 페이지에서 을 누릅니다 변경 내용 저장.

    사용자 지정 썸네일이 비디오에 추가됩니다.

Dynamic Media 자산에 대한 Dynamic Media URL 변경

Dynamic Media으로 처리된 비디오는 기본 뷰어를 통해 사용할 수 있으며 매니페스트 URL에 직접 액세스하고 사용자 지정 뷰어를 통해 재생하여 사용할 수도 있습니다. 다음은 비디오에 대한 매니페스트 URL을 가져오기 위한 API입니다.

getVideoManifestURI API 정보

다음 getVideoManifestURIAPI는 c를 통해 노출됩니다.q-scene7-api:com.day.cq.dam.scene7.api 및 를 사용하여 다음 매니페스트 URL을 생성할 수 있습니다.

/**
* Returns the manifest url for videos
* @param resource video resource
* @param manifestType type of video streaming manifest being requested
* @param onlyIfPublished return a manifest only if the video is published
* @return the manifest url for videos
*
* @throws Exception
*/
@Nullable
String getVideoManifestURI(Resource resource, ManifestType manifestType, boolean onlyIfPublished) throws Exception;

getVideoManifestURI API 매개 변수

이 API는 다음 세 가지 매개 변수를 사용합니다.

매개변수 설명
resource Dynamic Media이 수집한 비디오에 해당하는 리소스입니다.
manifestType 다음 중 하나일 수 있습니다. ManifestType.DASH 또는 ManifestType.HLS
onlyIfPublished 매니페스트 URI가 게시 및 게재 계층에서 사용할 수 있는 경우에만 생성되는 경우 true로 설정합니다.

위의 메서드를 사용하여 비디오에 대한 매니페스트 URL을 가져오려면 비디오 인코딩 프로필 을 클릭하여 "비디오 업로드" 폴더에 업로드하십시오. Dynamic Media은 폴더에 할당된 비디오 인코딩 파일에 있는 인코딩을 기반으로 이러한 비디오를 처리합니다. 이제 업로드된 비디오에 대한 매니페스트 URL을 가져오기 위해 위의 API를 호출할 수 있습니다.

오류 시나리오

오류가 있으면 API가 null을 반환합니다. 예외는 Experience Manager 오류 로그에 기록됩니다. 이렇게 기록된 모든 오류는 다음으로 시작합니다. Could not generate Video Manifest URI. 다음 시나리오에서 이러한 오류가 발생할 수 있습니다.

  • An IllegalArgumentException 다음 중 하나에 대해 기록됩니다.

    • 다음 resource 전달된 매개 변수가 null입니다.
    • 다음 resource 전달된 매개 변수가 비디오가 아닙니다.
    • 다음 manifestType 전달된 매개 변수가 null입니다.
    • 다음 onlyIfPublished 매개 변수가 true로 전달되지만 비디오가 게시되지 않습니다.
    • Dynamic Media의 응용 비디오 세트를 사용하여 비디오가 수집되지 않았습니다.
  • IOException 는 Dynamic Media에 연결하는 데 문제가 있을 때 기록됩니다.

  • UnsupportedOperationException 다음 경우에 로그인합니다. manifestType 전달된 매개 변수는 ManifestType.DASH, 비디오가 DASH 형식을 사용하여 처리되지 않았습니다.

다음은에 작성된 서블릿을 사용하는 위의 API의 예입니다 HTTPWhiteBoard 사양. 코드 구문에 대한 각 탭을 선택합니다.

 pom.xml에 종속성 추가
dependency>
     <groupId>com.day.cq.dam</groupId>
     <artifactId>cq-scene7-api</artifactId>
     <version>5.12.64</version>
     <scope>provided</scope>
</dependency>
 샘플 서블릿
@Component
        service = Servlet.class
)
@HttpWhiteboardServletPattern(value = ManifestServlet.SERVLET_PATTERN)
@HttpWhiteboardContextSelect(value = Constants.SERVLET_CONTEXT_SELECTOR)
public class ManifestServlet extends HttpServlet {

   private static final Logger LOGGER = LoggerFactory.getLogger(ManifestServlet.class);

   private final ObjectMapper objectMapper;

    @Reference
    private Scene7Service scene7Service;

   public static final String SERVLET_PATTERN = Constants.VIDEO_API_PREFIX + "/manifestUrl";

   public ManifestServlet() {
         this.objectMapper = new ObjectMapper();
         objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
   }

   @Override

   protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
        final ResourceResolver resolver = getResourceResolver(request);
        String assetPath = request.getParameter("assetPath");
        String manifest = request.getParameter("manifestType");
        String onlyIfPublished = request.getParameter("onlyIfPublished");
        Resource resource = resolver.getResource(assetPath);
        response.setCharacterEncoding(StandardCharsets.UTF_8.toString());
        response.setContentType("application/json");
        if(resource == null) {
            LOGGER.info("could not retrieve the resource from JCR");
            error("could not retrieve the resource from JCR", response);
            return;
        }

        String manifestUri = null;

        try{
            ManifestType manifestType =  ManifestType.DASH;
            if(manifest != null) {
                manifestType = ManifestType.valueOf(manifest);
            }
            manifestUri = scene7Service.getVideoManifestURI(resource, manifestType, onlyIfPublished != null);
            objectMapper.writeValue(response.getWriter(), new ManifestUrl(manifestUri));
            response.setContentType("application/json");
        } catch (Exception e) {
            LOGGER.error(e.getMessage(), e);
            error(String.format("Unable to get the manifest url for %s. %s", assetPath, e.getMessage()), response);
        }
    }

    private ResourceResolver getResourceResolver(HttpServletRequest request) {
        Object rr = request.getAttribute(AuthenticationSupport.REQUEST_ATTRIBUTE_RESOLVER);
        if (!(rr instanceof ResourceResolver)) {
            throw new IllegalStateException(
                    "The request does not seem to have been created via Apache Sling's authentication mechanism.");
        } else {
            return (ResourceResolver) rr;
        }
    }

    private void error(String errorMessage, HttpServletResponse response) throws IOException {
        ManifestUrl errorManifest = new ManifestUrl(null);
        errorManifest.setErrorMessage(errorMessage);
        response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
        objectMapper.writeValue(response.getWriter(), errorManifest);
    }
}
 서블릿에 대한 응답 클래스
public class ManifestUrl extends VideoResponse {
     String manifestUrl;
     public ManifestUrl(String manifestUrl) {
         this.manifestUrl = manifestUrl;
     }
     public String getManifestUrl() {
         return manifestUrl;
     }
}

public abstract class VideoResponse {
     String errorString;

     public String getErrorString() {
         return errorString;
     }

     public void setErrorMessage(String errorString) {
         this.errorString = errorString;
     }
}
 서블릿에 참조된 상수 파일
public final class Constants {

     private Constants() {
     }

     public static final String VIDEO_API_PREFIX = "/dynamicmedia/video";
     public static final String SERVLET_CONTEXT_SELECTOR = "(" + HttpWhiteboardConstants.HTTP_WHITEBOARD_CONTEXT_NAME + "=" +
             DMSampleApiHttpContext.CONTEXT_NAME + ")";

 }
 ServletContext

을(를) 사용하여 위의 서블릿을 마운트합니다. servletContext. 다음은 의 예입니다. servletContext.

public class DMSampleApiHttpContext extends ServletContextHelper {

 public static final String CONTEXT_NAME = "com.adobe.dmSample";
 public static final String CONTEXT_PATH = "/dmSample";

 private final MimeTypeService mimeTypeService;

 private final AuthenticationSupport authenticationSupport;

 /**
  * Constructs a new context that will use the given dependencies.
  *
  * @param mimeTypeService Used when providing mime type of requests.
  * @param authenticationSupport Used to authenticate requests with sling.
  */
 @Activate
 public DMSampleApiHttpContext(@Reference final MimeTypeService mimeTypeService,
                               @Reference final AuthenticationSupport authenticationSupport) {
     this.mimeTypeService = mimeTypeService;
     this.authenticationSupport = authenticationSupport;
 }

 // ---------- HttpContext interface ----------------------------------------
 /**
  * Returns the MIME type as resolved by the <code>MimeTypeService</code> or
  * <code>null</code> if the service is not available.
  */
 @Override
 public String getMimeType(String name) {
     MimeTypeService mtservice = mimeTypeService;
     if (mtservice != null) {
         return mtservice.getMimeType(name);
     }
     return null;
 }

 /**
  * Returns the real context path that is used to mount this context.
  * @param req servlet request
  * @return the context path
  */
 public static String getRealContextPath(HttpServletRequest req) {
     final String path = req.getContextPath();
     if (path.equals(CONTEXT_PATH)) {
         return "";
     }
     return path.substring(CONTEXT_PATH.length());
 }

 /**
  * Returns a request wrapper that transforms the context path back to the original one
  * @param req request
  * @return the request wrapper
  */
 public static HttpServletRequest createContextPathAdapterRequest(HttpServletRequest req) {
     return new HttpServletRequestWrapper(req) {

         @Override
         public String getContextPath() {
             return getRealContextPath((HttpServletRequest) getRequest());
         }

     };

 }

 /**
  * Always returns <code>null</code> because resources are all provided
  * through individual endpoint implementations.
  */
 @Override
 public URL getResource(String name) {
     return null;
 }

 /**
  * Tries to authenticate the request using the
  * <code>SlingAuthenticator</code>. If the authenticator or the Repository
  * is missing this method returns <code>false</code> and sends a 503/SERVICE
  * UNAVAILABLE status back to the client.
  */
 @Override
 public boolean handleSecurity(HttpServletRequest request,
                               HttpServletResponse response) throws IOException {

     final AuthenticationSupport authenticator = this.authenticationSupport;
     if (authenticator != null) {
         return authenticator.handleSecurity(createContextPathAdapterRequest(request), response);
     }

     // send 503/SERVICE UNAVAILABLE, flush to ensure delivery
     response.sendError(HttpServletResponse.SC_SERVICE_UNAVAILABLE,
             "AuthenticationSupport service missing. Cannot authenticate request.");
     response.flushBuffer();

     // terminate this request now
     return false;
 }
}

샘플 서블릿 사용

다음을 수행하여 서블릿을 호출합니다. GET 다음 위치의 작업 /dmSample/dynamicmedia/video/manifestUrl. 다음 쿼리 매개 변수가 전달됩니다.

쿼리 매개 변수 설명
assetPath 필수. 에 대한 비디오 경로 manifestUrl 이 생성됩니다.
manifestType 선택 사항. 매개변수는 DASH 또는 HLS일 수 있습니다. 전달되지 않으면 기본값은 DASH입니다.
onlyIfPublished 선택 사항. 전달된 경우 manifestUrl 비디오가 게시된 경우에만 가 반환됩니다.

이 예제에서는 다음 설정을 가정합니다.

  • 회사: samplecompany.
  • 작성 인스턴스는 http://sample-aem-author.com.
  • 폴더 /content/dam/video-example 에는 비디오 인코딩 프로필이 적용됩니다.
  • 비디오 scenery.mp4 이(가) 폴더에 업로드됨 /content/dam/video-example.

다음과 같은 방법으로 서블릿을 호출할 수 있습니다.

유형 설명
HLS http://sample-aem-author.com/dmSample/dynamicmedia/video/manifestUrl?manifestType=HLS&assetPath=/content/dam/video-example/scenery.mp4

DASH 게재가 활성화된 경우:
{"manifestUrl":"https://s7d1.scene7.com/is/content/samplecompany/scenery-AVS.m3u8?packagedStreaming=true"}

DASH 게재가 비활성화된 경우:
{"manifestUrl":"https://s7d1.scene7.com/is/content/samplecompany/scenery-AVS.m3u8"}
대시 http://sample-aem-author.com/dmSample/dynamicmedia/video/manifestUrl?manifestType=DASH&assetPath=/content/dam/video-example/scenery.mp4

DASH 게재가 활성화된 경우:
{"manifestUrl":"https://s7d1.scene7.com/is/content/samplecompany/scenery-AVS.mpd"}

DASH 게재가 비활성화된 경우:
{}
오류: 자산 경로가 잘못되었습니다. http://sample-aem-author.com/dmSample/dynamicmedia/video/manifestUrl?manifestType=DASH&assetPath=/content/dam/video-example/scennnnnnery.mp4

{"errorString":"could not retrieve the resource from JCR"}

이 페이지에서는