ffmpeg를 사용하여 대시 매니페스트 (MPD)에 여러 오디오 트랙 및 자막 추가

Knona

일부 동영상을 스트리밍 할 웹 사이트를 만들려고합니다. 각 비디오에 대해 비디오, 오디오 및 자막을 3 개의 다른 폴더에 추출합니다. 비디오에 여러 오디오 트랙과 여러 자막이있는 경우가 있습니다. 많은 조사를했지만 매니페스트에 모두 추가하는 방법을 모르겠습니다. 지금은 다음 명령을 사용합니다.

ffmpeg -f webm_dash_manifest \
-i video1.mp4 -f webm_dash_manifest \
-i video2.mp4 -f webm_dash_manifest \
-i audio1.webm -f webm_dash_manifest \
-i audio2.webm -f webm_dash_manifest \
-i subtitles.vtt \
-c copy -map 0 -map 1 -map 2 -map 3 \
-f webm_dash_manifest -adaptation_sets "id=0,streams=v id=1,streams=a" manifest.mpd

내 두 비디오는 해상도와 비트 전송률이 다르며 완벽하게 작동합니다. 하지만 자막이 나오지 않고 두 개의 오디오 트랙이 두 개의 다른 비트 전송률을 가진 하나의 동일한 오디오 트랙으로 간주됩니다 (비디오처럼). 나는 많은 adaptation_sets를 가지고 있어야한다고 생각하지만 그것들을 만드는 방법을 모릅니다.

올바른 방법으로 매니페스트를 어떻게 만들 수 있습니까?

Knona

며칠 후 해결책을 찾았습니다.

내 목표는 비디오를 스트리밍에 정말 좋은 mpeg-dash 콘텐츠로 변환하는 것입니다.

비디오를 h264로, 오디오를 aac로, 자막을 webvtt로 인코딩합니다. 큰 브라우저 호환성을위한 좋은 설정입니다. vp9는 정말 좋지만 인코딩하기에 너무 깁니다.

필요한 도구 :


다음 스트림이있는 1080p 비디오 파일 "video.mkv"가 있다고 가정 해 보겠습니다.

  • 0 : 비디오 스트림
  • 1 : 오디오 스트림, IT 언어
  • 2 : 오디오 스트림, 언어
  • 3 : 자막 스트림, IT 언어
  • 4 : 자막 스트림, 영어

1. differents 스트림 추출

1.1 비디오

비디오 스트림을 다른 해상도와 비트 레이트로 추출하고 트랜스 코딩합니다.

ffmpeg -i video.mkv -an -sn -c:0 libx264 -x264opts 'keyint=24:min-keyint=24:no-scenecut' -b:v 5300k -maxrate 5300k -bufsize 2650k -vf 'scale=-1:1080' tmp/video/video-1080.mp4

ffmpeg -i video.mkv -an -sn -c:0 libx264 -x264opts 'keyint=24:min-keyint=24:no-scenecut' -b:v 2400k -maxrate 2400k -bufsize 1200k -vf 'scale=-1:720' tmp/video/video-720.mp4

ffmpeg -i video.mkv -an -sn -c:0 libx264 -x264opts 'keyint=24:min-keyint=24:no-scenecut' -b:v 600k -maxrate 600k -bufsize 300k -vf 'scale=-1:360' tmp/video/video-360.mp4

1.2 오디오

ffmpeg -i video.mkv -map 0:1 -ac 2 -ab 192k -vn -sn tmp/audio/audio-it.mp4

ffmpeg -i video.mkv -map 0:2 -ac 2 -ab 192k -vn -sn tmp/audio/audio-en.mp4

1.3 자막

ffmpeg -i video.mkv -map 0:3 -vn -an tmp/subtitle/subtitle-it.vtt
ffmpeg -i video.mkv -map 0:4 -vn -an tmp/subtitle/subtitle-en.vtt

"-loglevel 경고"옵션을 사용하여 더 적은 정보를 볼 수 있습니다.

2. 비디오 및 오디오 조각화

2.1 비디오

mp4fragment tmp/video/video-1080.mp4 tmp/video/f-video-1080.mp4
mp4fragment tmp/video/video-720.mp4 tmp/video/f-video-720.mp4
mp4fragment tmp/video/video-360.mp4 tmp/video/f-video-360.mp4

2.2 오디오

mp4fragment tmp/audio/audio-it.mp4 tmp/audio/f-audio-it.mp4
mp4fragment tmp/audio/audio-en.mp4 tmp/audio/f-audio-en.mp4

3. 파일 분할 및 대시 매니페스트 생성

mp4dash --mpd-name=manifest.mpd tmp/video/f-video-1080.mp4 tmp/video/f-video-720.mp4 tmp/video/f-video-360.mp4 tmp/audio/f-audio-it.mp4 tmp/audio/f-audio-en.mp4 \[+format=webvtt,+language=it\]tmp/subtitle/subtitle-it.vtt \[+format=webvtt,+language=en\]tmp/subtitle/subtitle-en.vtt

이제 tmp 폴더를 삭제할 수 있습니다.

rm -rf tmp

(더 이상 필요하지 않은 경우 소스 파일)

이제 스트리밍 할 수있는 mpeg-dash 콘텐츠가 있습니다. 파일을 제공해야합니다 (cors 허용 및 바이트 범위 요청 활성화). 저는 앵귤러와 rx-player를 플레이어로 사용합니다. 언어, 자막을 전환 할 수 있으며 비디오 품질은 클라이언트의 대역폭에 맞게 조정됩니다!

Rx-player : https://github.com/canalplus/rx-player

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

ffmpeg를 사용하여 추가 된 오디오 및 자막 트랙 간 iOS 전환

분류에서Dev

ffmpeg를 사용하여 DTS 오디오 트랙을 AC3로 변환하고 MKV에 다시 추가 하시겠습니까?

분류에서Dev

ffmpeg를 사용하여 선택한 오디오 트랙과 자막을 어떻게 리 먹싱합니까?

분류에서Dev

MP4Box (MPEG DASH)를 사용하여 생성 된 다양한 오디오 및 비디오 세그먼트에 대한 단일 매니페스트 파일

분류에서Dev

ffmpeg를 사용하여 mp4 파일에서 특정 오디오 트랙 (트랙 2)을 추출하는 방법은 무엇입니까?

분류에서Dev

ffmpeg를 사용하여 mp4 파일에서 특정 오디오 트랙 (트랙 2)을 추출하는 방법은 무엇입니까?

분류에서Dev

Swift 및 Xcode를 사용하여 오디오와 함께 자막 (텍스트 변경 레이블) 표시

분류에서Dev

ffmpeg-창에 여러 비디오, 하나의 마스터 트랙 추가, 오프셋 시작 시간 제공 방법?

분류에서Dev

ffmpeg를 사용하여 여러 오디오 트랙에 다른 오디오 필터를 적용하는 방법은 무엇입니까?

분류에서Dev

ffmpeg를 사용하여 비디오의 특정 시간에 오디오 추가

분류에서Dev

Spotipy를 사용하여 재생 목록에 트랙을 추가 할 때 여러 오류

분류에서Dev

FFmpeg는 오디오 트랙을 변환하고 비디오 트랙을 건드리지 않고 미디어 파일에 다시 추가합니다.

분류에서Dev

FFmpeg를 사용하여 비디오에 오디오 추가

분류에서Dev

VBA를 사용하여 합계 및 수식을 여러 시트에 추가

분류에서Dev

ffmpeg를 사용하여 오디오 트랙의 이름을 읽는 방법

분류에서Dev

ffmpeg를 사용하여 비디오 스트림 추출

분류에서Dev

ffmpeg를 사용하여 비디오에서 오디오를 추출 할 때 오류가 나타납니다.

분류에서Dev

사용자가 미디어 컨트롤러 버튼을 클릭 할 때 간단한 토스트 메시지를 표시하고 싶습니다. 미디어 컨트롤러를 사용하여 비디오보기에서 일시 중지 / 시작 / 중지

분류에서Dev

ffmpeg, shntool 및 sox를 사용하여 여러 개의 24 비트 96kHz wav 오디오 파일 연결

분류에서Dev

오디오와 비디오의 볼륨 제어 및 FFMpeg를 사용하여 특정 기간 동안 만 루프로 비디오에 짧은 오디오 추가

분류에서Dev

개별 오디오 트랙에 여러 오디오 장치를 입력하는 방법

분류에서Dev

ffmpeg : 기존 파일에 새 오디오 트랙 추가

분류에서Dev

HTML 및 자바 스크립트를 사용하여 HTML의 여러 페이지에 프로필 사진 표시

분류에서Dev

여러 오디오 트랙을 icecast로 스트리밍하는 FFmpeg

분류에서Dev

Windows 10에서 MediaPlaybackItem에 비디오 및 오디오 트랙을 추가하는 방법

분류에서Dev

ffmpeg를 사용하여 캔버스에 두 개의 비디오 추가

분류에서Dev

바이트 배열을 사용하여 비트 맵에 텍스트 추가 (비디오에 포함 된 자막 추가)

분류에서Dev

magento의 사용자 지정 스크립트에서 제품에 대한 여러 범주 및 하위 범주를 가져 오는 방법

분류에서Dev

오디오 트랙의 사용자 평가는 어디에 있습니까?

Related 관련 기사

  1. 1

    ffmpeg를 사용하여 추가 된 오디오 및 자막 트랙 간 iOS 전환

  2. 2

    ffmpeg를 사용하여 DTS 오디오 트랙을 AC3로 변환하고 MKV에 다시 추가 하시겠습니까?

  3. 3

    ffmpeg를 사용하여 선택한 오디오 트랙과 자막을 어떻게 리 먹싱합니까?

  4. 4

    MP4Box (MPEG DASH)를 사용하여 생성 된 다양한 오디오 및 비디오 세그먼트에 대한 단일 매니페스트 파일

  5. 5

    ffmpeg를 사용하여 mp4 파일에서 특정 오디오 트랙 (트랙 2)을 추출하는 방법은 무엇입니까?

  6. 6

    ffmpeg를 사용하여 mp4 파일에서 특정 오디오 트랙 (트랙 2)을 추출하는 방법은 무엇입니까?

  7. 7

    Swift 및 Xcode를 사용하여 오디오와 함께 자막 (텍스트 변경 레이블) 표시

  8. 8

    ffmpeg-창에 여러 비디오, 하나의 마스터 트랙 추가, 오프셋 시작 시간 제공 방법?

  9. 9

    ffmpeg를 사용하여 여러 오디오 트랙에 다른 오디오 필터를 적용하는 방법은 무엇입니까?

  10. 10

    ffmpeg를 사용하여 비디오의 특정 시간에 오디오 추가

  11. 11

    Spotipy를 사용하여 재생 목록에 트랙을 추가 할 때 여러 오류

  12. 12

    FFmpeg는 오디오 트랙을 변환하고 비디오 트랙을 건드리지 않고 미디어 파일에 다시 추가합니다.

  13. 13

    FFmpeg를 사용하여 비디오에 오디오 추가

  14. 14

    VBA를 사용하여 합계 및 수식을 여러 시트에 추가

  15. 15

    ffmpeg를 사용하여 오디오 트랙의 이름을 읽는 방법

  16. 16

    ffmpeg를 사용하여 비디오 스트림 추출

  17. 17

    ffmpeg를 사용하여 비디오에서 오디오를 추출 할 때 오류가 나타납니다.

  18. 18

    사용자가 미디어 컨트롤러 버튼을 클릭 할 때 간단한 토스트 메시지를 표시하고 싶습니다. 미디어 컨트롤러를 사용하여 비디오보기에서 일시 중지 / 시작 / 중지

  19. 19

    ffmpeg, shntool 및 sox를 사용하여 여러 개의 24 비트 96kHz wav 오디오 파일 연결

  20. 20

    오디오와 비디오의 볼륨 제어 및 FFMpeg를 사용하여 특정 기간 동안 만 루프로 비디오에 짧은 오디오 추가

  21. 21

    개별 오디오 트랙에 여러 오디오 장치를 입력하는 방법

  22. 22

    ffmpeg : 기존 파일에 새 오디오 트랙 추가

  23. 23

    HTML 및 자바 스크립트를 사용하여 HTML의 여러 페이지에 프로필 사진 표시

  24. 24

    여러 오디오 트랙을 icecast로 스트리밍하는 FFmpeg

  25. 25

    Windows 10에서 MediaPlaybackItem에 비디오 및 오디오 트랙을 추가하는 방법

  26. 26

    ffmpeg를 사용하여 캔버스에 두 개의 비디오 추가

  27. 27

    바이트 배열을 사용하여 비트 맵에 텍스트 추가 (비디오에 포함 된 자막 추가)

  28. 28

    magento의 사용자 지정 스크립트에서 제품에 대한 여러 범주 및 하위 범주를 가져 오는 방법

  29. 29

    오디오 트랙의 사용자 평가는 어디에 있습니까?

뜨겁다태그

보관