rodrigopolo

DASH Encoding

Jun 7th, 2022 (edited)
463
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.20 KB | None | 0 0
  1. # 16:9 Aspect ratio
  2. #   256:144
  3. #   426:240
  4. #   640:360
  5. #   854:480
  6. #   1280:720
  7. #   1920:1080
  8. #   2560:1440
  9. #   3840:2160
  10.  
  11. # 4300k 1080p
  12. ffmpeg \
  13. -y \
  14. -i Sintel.2010.1080p.mkv \
  15. -c:v libx264 \
  16. -r 24 \
  17. -x264opts 'keyint=48:min-keyint=48:no-scenecut' \
  18. -vf "scale=1920:-2" \
  19. -b:v 4300k \
  20. -maxrate 4300k \
  21. -movflags faststart \
  22. -bufsize 8600k \
  23. -profile:v main \
  24. -preset fast \
  25. -an \
  26. "video_intermed_4300k.mp4"
  27.  
  28. # 1050k 480p
  29. ffmpeg \
  30. -y \
  31. -i Sintel.2010.1080p.mkv \
  32. -c:v libx264 \
  33. -r 24 \
  34. -x264opts 'keyint=48:min-keyint=48:no-scenecut' \
  35. -vf scale=854:-2 \
  36. -b:v 1050k \
  37. -maxrate 1050k \
  38. -movflags faststart \
  39. -bufsize 8600k \
  40. -profile:v main \
  41. -preset fast \
  42. -an \
  43. "video_intermed_1050k.mp4"
  44.  
  45. # 235k 360p
  46. ffmpeg \
  47. -y \
  48. -i Sintel.2010.1080p.mkv \
  49. -c:v libx264 \
  50. -r 24 \
  51. -x264opts 'keyint=48:min-keyint=48:no-scenecut' \
  52. -vf scale=640:-2 \
  53. -b:v 235k \
  54. -maxrate 235k \
  55. -movflags faststart \
  56. -bufsize 8600k \
  57. -profile:v main \
  58. -preset fast \
  59. -an \
  60. "video_intermed_235k.mp4"
  61.  
  62. # Audio
  63. ffmpeg \
  64. -y \
  65. -i Sintel.2010.1080p.mkv \
  66. -map 0:1 \
  67. -vn \
  68. -c:a aac \
  69. -b:a 128k \
  70. -ar 48000 \
  71. -ac 2 \
  72. audio1.m4a
  73.  
  74. # Audio 2
  75. ffmpeg \
  76. -y \
  77. -i sintel-m+e-st.flac \
  78. -map 0:0 \
  79. -vn \
  80. -c:a aac \
  81. -b:a 128k \
  82. -ar 48000 \
  83. -ac 2 \
  84. audio2.m4a
  85.  
  86. ffmpeg -y -i sintel_en.srt sintel_en.vtt
  87. ffmpeg -y -i sintel_es.srt sintel_es.vtt
  88. ffmpeg -y -i sintel_de.srt sintel_de.vtt
  89.  
  90. mp4box -add "sintel_en.vtt:lang=en" subtitle_en.mp4
  91. mp4box -add "sintel_es.vtt:lang=es" subtitle_es.mp4
  92. mp4box -add "sintel_de.vtt:lang=de" subtitle_de.mp4
  93.  
  94. mp4box \
  95. -dash 4000 \
  96. -frag 4000 \
  97. -rap \
  98. -segment-name 'segment_$RepresentationID$_' \
  99. -fps 24 \
  100. "video_intermed_235k.mp4#video:id=240p" \
  101. "video_intermed_1050k.mp4#video:id=480p" \
  102. "video_intermed_4300k.mp4#video:id=1080p" \
  103. "audio1.m4a#audio:id=English:role=main" \
  104. "audio2.m4a#audio:id=Dubbed:role=dub" \
  105. "subtitle_en.mp4:role=subtitle" \
  106. "subtitle_es.mp4:role=subtitle" \
  107. "subtitle_de.mp4:role=subtitle" \
  108. -out dash/playlist.mpd
  109.  
  110. cd dash
  111. # https://myshittycode.com/2014/07/24/os-x-sed-extra-characters-at-the-end-of-l-command-error/
  112. sed -i '' 's|mimeType="video/mp4" codecs="wvtt"|mimeType="application/mp4" codecs="wvtt"|g' playlist.mpd
  113.  
  114.  
Add Comment
Please, Sign In to add comment