other_video_transcoding 0.3.2 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cfd039fdab5dca779448614baaf5f0e99b3d7dc883f97693919a016224e4b7aa
4
- data.tar.gz: c97d8899ea867a018059d1896c3608e3982f8677f8fe81c7506097171c7591e8
3
+ metadata.gz: fa5db474ee387172ee779cd57befc925892dde23348ed6376cd35c416662576f
4
+ data.tar.gz: bd15276c43996afe54cf1bd7ad0f52eb55e5f5a6c1d90ebd36721d206eb17205
5
5
  SHA512:
6
- metadata.gz: 1915b0bdacf95a0bdfe5e825497f9081571318aaf9423a10df614b0f5ab7a74949ebd6c6039c4ef09c5ce2d567dbe6a851019f996d64284a1ab0525a0a7c10e2
7
- data.tar.gz: 64f23ade8dc74a15f8024313b66cd91b3298e80d4e39be391f47630ddd2aa812c67271bfa522794202dd33b4ce18b601c8cbf77a8b46078f288c050afd5eef3a
6
+ metadata.gz: 577dcc59ee2b7b2304ad59243abd5999851ed5a0407934eccfd25e59d320145428b40a86eb3f6938b30e6c45d2343cc20aa2b62f474e7b4d0c1dd9a99d8dc43e
7
+ data.tar.gz: 053d07452a33c7d04239e8dee324ec954e08682607871cf8c79e2cdbf0cb6bbca0dff202e8464e2fe49f80c6e7a4adb50c3a9f815636e0fe786e7ac86829ddd6
@@ -2,6 +2,23 @@
2
2
 
3
3
  This single document contains all of the notes created for each [release](https://github.com/donmelton/other_video_transcoding/releases).
4
4
 
5
+ ## [0.4.0](https://github.com/donmelton/other_video_transcoding/releases/tag/0.4.0)
6
+
7
+ Sunday, November 1, 2020
8
+
9
+ * Modify the behavior and augment the capabilities of both encoding and decoding when using Nvidia hardware with `other-transcode`. This is necessary for compatibility with unleased versions of `ffmpeg` which are now built using the new Nvidia Software Development Kit (SDK) version 11.0. This SDK changes default encoder behavior and adds new presets which allow finer control of the performance/quality trade-off when transcoding video. To allow maximum performance, `other-transcode` no longer enables some quality settings by default:
10
+ * Multipass mode, now accessible via a new `--nvenc-multipass` option. Be advised that any improved quality from enabling multipass mode is probably not worth the performance impact.
11
+ * Spatial and temporal adaptive quantization (AQ), accessible via the `--nvenc-spatial-aq` and `--nvenc-temporal-aq` options. While enabling spatial AQ is still useful in reducing color banding for some inputs, be advised that enabling temporal AQ is probably not necessary and can cause some other side effects.
12
+ * Add support for seven new Nvidia encoder presets to `other-transcode`. Use `--preset p1` for best performance and `--preset p7` for best quality. It's not necessary to use `--preset p4` since that's the default. See the [Nvidia preset migration guide](https://docs.nvidia.com/video-technologies/video-codec-sdk/nvenc-preset-migration-guide/index.html) to understand how these presets work and how they map to older behavior.
13
+ * Add a `--nvenc-rc-mode` option to `other-transcode` for backward comaptibility with `ffmpeg` version 4.3.1 and older.
14
+ * Add `--cuda` and `--no-cuda` options to `other-transcode`. These options enable or disable the scoped use of the Nvidia CUDA hardware decoder instead of the generic hardware decoder. By default the CUDA _decoder_ is enabled when using the Nvidia video _encoder_, but disabled when using other encoders.
15
+ * Deprecate the `--cuvid` option in `other-transcode` because the CUDA decoder is faster and more flexible.
16
+ * Deprecate `--preset none` in `other-transcode` because it's no longer necessary.
17
+ * Always use hyphen-based spellings of Nvidia AQ options in `ffmpeg` commands generated by `other-transcode`.
18
+ * Add `--x264-params` and `--x265-params` options to `other-transcode` for _very_ advanced manipulation of the `x264` and `x265` software encoders.
19
+ * Modify `other-transcode` to assume a video input without a `field_order` tag is progressive instead of interlaced so a deinterlace fliter is not automatically and incorrectly applied to that video. This avoids problems with some 4K Ultra HD Blu-ray rips.
20
+ * Update the link to Docker containers for Linux in the "README" document. Thanks, @ttyS0!
21
+
5
22
  ## [0.3.2](https://github.com/donmelton/other_video_transcoding/releases/tag/0.3.2)
6
23
 
7
24
  Friday, September 11, 2020
data/README.md CHANGED
@@ -64,9 +64,7 @@ Additional documentation for installing these programs on Windows is available i
64
64
 
65
65
  [Docker](https://en.wikipedia.org/wiki/Docker_(software)) containers for Linux, including installation instructions, are available here:
66
66
 
67
- https://github.com/ttyS0/docker-transcode-nvidia
68
-
69
- https://github.com/ttyS0/docker-transcode-vaapi
67
+ https://github.com/ttyS0/docker-other-transcode
70
68
 
71
69
  On macOS, all of these programs can be easily installed via [Homebrew](http://brew.sh/), an optional package manager:
72
70
 
@@ -16,7 +16,7 @@ module Transcoding
16
16
  class Command
17
17
  def about
18
18
  <<-HERE
19
- ask-ffmpeg-log 0.3.2
19
+ ask-ffmpeg-log 0.4.0
20
20
  Copyright (c) 2019-2020 Don Melton
21
21
  HERE
22
22
  end
@@ -18,7 +18,7 @@ module Transcoding
18
18
  class Command
19
19
  def about
20
20
  <<-HERE
21
- other-transcode 0.3.2
21
+ other-transcode 0.4.0
22
22
  Copyright (c) 2019-2020 Don Melton
23
23
  HERE
24
24
  end
@@ -93,14 +93,15 @@ Video options:
93
93
  --10-bit, --no-10-bit
94
94
  use 10-bit pixel format (default: not used for H.264,
95
95
  used for HEVC with Nvidia, Intel and x265 encoders)
96
- --preset NAME|none
97
- apply video encoder preset or disable default settings
96
+ --preset NAME apply video encoder preset
98
97
  --decode vc1|all|none
99
98
  set scope of automatic hardware decoder acceleration
100
99
  (default: vc1 for VC-1 format only)
101
- --cuvid use Nvidia video decoder
102
- for H.264, VC-1, MPEG-2 and other formats
103
- (ignores scope set by `--decode`)
100
+ --cuda, --no-cuda
101
+ enable or disable scoped use of Nvidia video decoder
102
+ instead of generic hardware decoder
103
+ (default: enabled when using Nvidia video encoder,
104
+ disabled when using other encoders)
104
105
  HERE
105
106
  end
106
107
 
@@ -140,17 +141,20 @@ Apple Video Toolbox encoder options:
140
141
  --vt-allow-sw allow software encoding
141
142
 
142
143
  Nvidia video encoder options:
143
- --nvenc-spatial-aq, --no-nvenc-spatial-aq
144
- enable or disable spatial AQ (default: enabled)
145
- --nvenc-temporal-aq, --no-nvenc-temporal-aq
146
- enable or disable temporal AQ
147
- (default: enabled for H.264, disabled for HEVC)
144
+ --nvenc-spatial-aq
145
+ enable spatial adaptive quantization (AQ)
146
+ --nvenc-temporal-aq
147
+ enable temporal adaptive quantization (AQ)
148
148
  --nvenc-lookahead FRAMES
149
149
  set number of frames to look ahead for ratecontrol
150
+ --nvenc-multipass qres|fullres
151
+ set multipass encoding resolution
150
152
  --nvenc-refs FRAMES
151
153
  set number of reference frames
152
154
  --nvenc-bframes FRAMES
153
155
  set maximum number of B-frames
156
+ --nvenc-rc-mode vbr|vbr_hq
157
+ set ratecontrol mode (default: vbr)
154
158
 
155
159
  Intel Quick Sync video encoder options:
156
160
  --qsv-refs FRAMES
@@ -179,6 +183,12 @@ x264 software video encoder options:
179
183
  --x264-quick increase encoding speed by 70-80%
180
184
  with no easily perceptible loss in video quality
181
185
  (avoids quality problems with some encoder presets)
186
+ --x264-params KEY=VALUE[:KEY=VALUE]...
187
+ override x264 configuration (disables other x264 options)
188
+
189
+ x265 software video encoder options:
190
+ --x265-params KEY=VALUE[:KEY=VALUE]...
191
+ override x265 configuration
182
192
  HERE
183
193
  end
184
194
 
@@ -299,6 +309,7 @@ Requires `ffprobe`, `ffmpeg` and `mkvpropedit`.
299
309
  @ten_bit = nil
300
310
  @preset = nil
301
311
  @decode_scope = :vc1
312
+ @decode_method = nil
302
313
  @decoder_type = nil
303
314
  @target_2160p = nil
304
315
  @target_1080p = nil
@@ -315,11 +326,13 @@ Requires `ffprobe`, `ffmpeg` and `mkvpropedit`.
315
326
  @maxrate = nil
316
327
  @bufsize = nil
317
328
  @vt_allow_sw = false
318
- @nvenc_spatial_aq = nil
319
- @nvenc_temporal_aq = nil
329
+ @nvenc_spatial_aq = false
330
+ @nvenc_temporal_aq = false
320
331
  @nvenc_lookahead = nil
332
+ @nvenc_multipass = nil
321
333
  @nvenc_refs = nil
322
334
  @nvenc_bframes = nil
335
+ @nvenc_rc_mode = 'vbr'
323
336
  @qsv_refs = nil
324
337
  @qsv_bframes = nil
325
338
  @amf_quality = nil
@@ -331,6 +344,8 @@ Requires `ffprobe`, `ffmpeg` and `mkvpropedit`.
331
344
  @x264_avbr = false
332
345
  @x264_mbtree = false
333
346
  @x264_quick = false
347
+ @x264_params = nil
348
+ @x265_params = nil
334
349
  @audio_selections = [{
335
350
  :track => 1,
336
351
  :language => nil,
@@ -483,7 +498,15 @@ Requires `ffprobe`, `ffmpeg` and `mkvpropedit`.
483
498
  end
484
499
 
485
500
  opts.on '--preset ARG' do |arg|
486
- @preset = arg
501
+ if arg == 'none'
502
+ Kernel.warn '**********'
503
+ Kernel.warn 'Using deprecated `--preset` argument: none'
504
+ Kernel.warn '**********'
505
+ @preset = nil
506
+ else
507
+ @preset = arg
508
+ end
509
+
487
510
  @encoder = nil if @encoder == 'copy'
488
511
  end
489
512
 
@@ -496,7 +519,14 @@ Requires `ffprobe`, `ffmpeg` and `mkvpropedit`.
496
519
  end
497
520
  end
498
521
 
522
+ opts.on '--[no-]cuda' do |arg|
523
+ @decode_method = arg ? 'cuda' : 'auto'
524
+ end
525
+
499
526
  opts.on '--cuvid' do
527
+ Kernel.warn '**********'
528
+ Kernel.warn 'Using deprecated option: --cuvid'
529
+ Kernel.warn '**********'
500
530
  @decoder_type = :cuvid
501
531
  end
502
532
 
@@ -621,11 +651,23 @@ Requires `ffprobe`, `ffmpeg` and `mkvpropedit`.
621
651
  end
622
652
 
623
653
  opts.on '--[no-]nvenc-spatial-aq' do |arg|
654
+ unless arg
655
+ Kernel.warn '**********'
656
+ Kernel.warn 'Using deprecated option: --no-nvenc-spatial-aq'
657
+ Kernel.warn '**********'
658
+ end
659
+
624
660
  @encoder = @hevc ? 'hevc_nvenc' : 'h264_nvenc'
625
661
  @nvenc_spatial_aq = arg
626
662
  end
627
663
 
628
664
  opts.on '--[no-]nvenc-temporal-aq' do |arg|
665
+ unless arg
666
+ Kernel.warn '**********'
667
+ Kernel.warn 'Using deprecated option: --no-nvenc-temporal-aq'
668
+ Kernel.warn '**********'
669
+ end
670
+
629
671
  @encoder = @hevc ? 'hevc_nvenc' : 'h264_nvenc'
630
672
  @nvenc_temporal_aq = arg
631
673
  end
@@ -635,6 +677,17 @@ Requires `ffprobe`, `ffmpeg` and `mkvpropedit`.
635
677
  @nvenc_lookahead = [[arg, 0].max, 32].min
636
678
  end
637
679
 
680
+ opts.on '--nvenc-multipass ARG' do |arg|
681
+ @encoder = @hevc ? 'hevc_nvenc' : 'h264_nvenc'
682
+
683
+ @nvenc_multipass = case arg
684
+ when 'qres', 'fullres'
685
+ arg
686
+ else
687
+ fail UsageError, "invalid multipass resolution argument: #{arg}"
688
+ end
689
+ end
690
+
638
691
  opts.on '--nvenc-refs ARG', Integer do |arg|
639
692
  @encoder = @hevc ? 'hevc_nvenc' : 'h264_nvenc'
640
693
  @nvenc_refs = [arg, 0].max
@@ -645,6 +698,17 @@ Requires `ffprobe`, `ffmpeg` and `mkvpropedit`.
645
698
  @nvenc_bframes = [[arg, 0].max, 4].min
646
699
  end
647
700
 
701
+ opts.on '--nvenc-rc-mode ARG' do |arg|
702
+ @encoder = @hevc ? 'hevc_nvenc' : 'h264_nvenc'
703
+
704
+ @nvenc_rc_mode = case arg
705
+ when 'vbr', 'vbr_hq'
706
+ arg
707
+ else
708
+ fail UsageError, "invalid rate control argument: #{arg}"
709
+ end
710
+ end
711
+
648
712
  opts.on '--qsv-refs ARG', Integer do |arg|
649
713
  @encoder = @hevc ? 'hevc_qsv' : 'h264_qsv'
650
714
  @qsv_refs = [arg, 0].max
@@ -696,6 +760,7 @@ Requires `ffprobe`, `ffmpeg` and `mkvpropedit`.
696
760
  @hevc = false
697
761
  @x264_avbr = true
698
762
  @x264_mbtree = false
763
+ @x264_params = nil
699
764
  end
700
765
 
701
766
  opts.on '--x264-mbtree' do
@@ -703,15 +768,40 @@ Requires `ffprobe`, `ffmpeg` and `mkvpropedit`.
703
768
  @hevc = false
704
769
  @x264_mbtree = true
705
770
  @x264_avbr = false
771
+ @x264_params = nil
706
772
  end
707
773
 
708
774
  opts.on '--x264-quick' do
709
775
  @encoder = 'libx264'
710
776
  @hevc = false
711
777
  @x264_quick = true
778
+ @x264_params = nil
712
779
  @preset = nil
713
780
  end
714
781
 
782
+ opts.on '--x264-params ARG' do |arg|
783
+ arg.split ':' do |param|
784
+ fail UsageError, "invalid argument: #{arg}" unless param =~ /^[\w\-]+=[\w\-\.,]+$/
785
+ end
786
+
787
+ @encoder = 'libx264'
788
+ @hevc = false
789
+ @x264_params = arg
790
+ @x264_avbr = false
791
+ @x264_mbtree = true
792
+ @x264_quick = false
793
+ end
794
+
795
+ opts.on '--x265-params ARG' do |arg|
796
+ arg.split ':' do |param|
797
+ fail UsageError, "invalid argument: #{arg}" unless param =~ /^[\w\-]+=[\w\-\.,]+$/
798
+ end
799
+
800
+ @encoder = 'libx265'
801
+ @hevc = true
802
+ @x265_params = arg
803
+ end
804
+
715
805
  opts.on '--main-audio ARG' do |arg|
716
806
  if arg =~ /^([0-9]+)(?:=(stereo|surround|original))?$/
717
807
  @audio_selections[0][:track] = $1.to_i
@@ -880,6 +970,7 @@ Requires `ffprobe`, `ffmpeg` and `mkvpropedit`.
880
970
  @target_1080p ||= (@hevc and @ten_bit) ? 6000 : 8000
881
971
  @target_720p ||= (@hevc and @ten_bit) ? 3000 : 4000
882
972
  @target_480p ||= (@hevc and @ten_bit) ? 1500 : 2000
973
+ @decode_method ||= @encoder =~ /nvenc$/ ? 'cuda' : 'auto'
883
974
 
884
975
  if @stereo_encoder.nil?
885
976
  if encoders =~ /aac_at/ or encoders =~ /libfdk_aac/
@@ -948,8 +1039,7 @@ Requires `ffprobe`, `ffmpeg` and `mkvpropedit`.
948
1039
  ] + (encoder =~ /vaapi$/ ? ['-filter:v', 'format=nv12,hwupload'] : []) + [
949
1040
  '-c:v', encoder,
950
1041
  '-b:v', '1000k'
951
- ] + (encoder =~ /nvenc$/ ? ['-rc:v', 'vbr_hq', '-spatial-aq:v', '1'] : []) +
952
- (encoder == 'h264_nvenc' ? ['-temporal-aq:v', '1'] : []) +
1042
+ ] + (encoder =~ /nvenc$/ ? ['-rc:v', @nvenc_rc_mode] : []) +
953
1043
  (encoder == 'h264_qsv' ? ['-look_ahead:v', '1'] : []) +
954
1044
  (encoder == 'hevc_qsv' ? ['-load_plugin:v', 'hevc_hw'] : []) +
955
1045
  (encoder =~ /amf$/ ? ['-rc:v', 'vbr_latency'] : []) + [
@@ -1511,7 +1601,7 @@ Requires `ffprobe`, `ffmpeg` and `mkvpropedit`.
1511
1601
  rate = @rate
1512
1602
 
1513
1603
  if @enable_filters
1514
- if video['avg_frame_rate'] == '30000/1001' or video['field_order'] != 'progressive'
1604
+ if video['avg_frame_rate'] == '30000/1001' or video.fetch('field_order', 'progressive') != 'progressive'
1515
1605
  deinterlace = true
1516
1606
 
1517
1607
  if video['codec_name'] == 'mpeg2video' and video['avg_frame_rate'] != '25/1'
@@ -1609,7 +1699,7 @@ Requires `ffprobe`, `ffmpeg` and `mkvpropedit`.
1609
1699
  '-hwaccel_output_format', 'vaapi'
1610
1700
  ]
1611
1701
  else
1612
- decode_options += ['-hwaccel', 'auto']
1702
+ decode_options += ['-hwaccel', @decode_method]
1613
1703
  end
1614
1704
  end
1615
1705
  else
@@ -1708,15 +1798,13 @@ Requires `ffprobe`, `ffmpeg` and `mkvpropedit`.
1708
1798
  end
1709
1799
  end
1710
1800
 
1711
- if @preset.nil? or @preset == 'none'
1712
- preset = nil
1713
- else
1801
+ unless @preset.nil?
1714
1802
  valid = false
1715
1803
 
1716
1804
  case @encoder
1717
1805
  when /nvenc$/
1718
1806
  case @preset
1719
- when 'fast', 'medium', 'slow'
1807
+ when 'fast', 'medium', 'slow', /^p[1-7]$/
1720
1808
  valid = true
1721
1809
  end
1722
1810
  when /qsv$/
@@ -1733,8 +1821,6 @@ Requires `ffprobe`, `ffmpeg` and `mkvpropedit`.
1733
1821
  end
1734
1822
 
1735
1823
  fail "invalid preset for encoder: #{@preset}" unless valid
1736
-
1737
- preset = @preset
1738
1824
  end
1739
1825
 
1740
1826
  Kernel.warn 'Stream mapping:'
@@ -1742,7 +1828,7 @@ Requires `ffprobe`, `ffmpeg` and `mkvpropedit`.
1742
1828
 
1743
1829
  unless @encoder == 'copy'
1744
1830
  text += " / #{bitrate} Kbps"
1745
- text += " / #{preset}" unless preset.nil?
1831
+ text += " / #{@preset}" unless @preset.nil?
1746
1832
  end
1747
1833
 
1748
1834
  unless burn_subtitle.nil?
@@ -1755,33 +1841,15 @@ Requires `ffprobe`, `ffmpeg` and `mkvpropedit`.
1755
1841
  encode_options += ['-b:v', "#{bitrate}k"] unless @encoder == 'copy'
1756
1842
  encode_options += ['-maxrate:v', "#{maxrate}k"] if maxrate > 0
1757
1843
  encode_options += ['-bufsize:v', "#{bufsize}k"] if bufsize > 0
1758
- encode_options += ['-preset:v', preset] unless preset.nil?
1844
+ encode_options += ['-preset:v', @preset] unless @preset.nil?
1759
1845
  encode_options += ['-allow_sw:v', '1'] if @encoder =~ /videotoolbox$/ and @vt_allow_sw
1760
1846
 
1761
1847
  if @encoder =~ /nvenc$/
1762
- spatial_aq = @nvenc_spatial_aq.nil? ? false : @nvenc_spatial_aq
1763
- temporal_aq = @nvenc_temporal_aq.nil? ? false : @nvenc_temporal_aq
1764
-
1765
- if @hevc
1766
- spatial_aq_option = '-spatial_aq:v'
1767
- temporal_aq_option = '-temporal_aq:v'
1768
- else
1769
- spatial_aq_option = '-spatial-aq:v'
1770
- temporal_aq_option = '-temporal-aq:v'
1771
- end
1772
-
1773
- if @preset.nil?
1774
- encode_options += ['-rc:v', 'vbr_hq']
1775
- spatial_aq = true if @nvenc_spatial_aq.nil?
1776
-
1777
- unless @hevc
1778
- temporal_aq = true if @nvenc_temporal_aq.nil?
1779
- end
1780
- end
1781
-
1782
- encode_options += [spatial_aq_option, '1'] if spatial_aq
1783
- encode_options += [temporal_aq_option, '1'] if temporal_aq
1848
+ encode_options += ['-rc:v', @nvenc_rc_mode]
1849
+ encode_options += ['-spatial-aq:v', '1'] if @nvenc_spatial_aq
1850
+ encode_options += ['-temporal-aq:v', '1'] if @nvenc_temporal_aq
1784
1851
  encode_options += ['-rc-lookahead:v', @nvenc_lookahead.to_s] unless @nvenc_lookahead.nil?
1852
+ encode_options += ['-multipass:v', @nvenc_multipass] unless @nvenc_multipass.nil?
1785
1853
  encode_options += ['-refs:v', @nvenc_refs.to_s] unless @nvenc_refs.nil?
1786
1854
  encode_options += ['-bf:v', @nvenc_bframes.to_s] unless @nvenc_bframes.nil?
1787
1855
  end
@@ -1834,6 +1902,12 @@ Requires `ffprobe`, `ffmpeg` and `mkvpropedit`.
1834
1902
 
1835
1903
  encode_options += ['-refs:v', max_refs.to_s] if refs > max_refs
1836
1904
  end
1905
+
1906
+ encode_options += ['-x264-params:v', @x264_params] unless @x264_params.nil?
1907
+ end
1908
+
1909
+ if @encoder == 'libx265'
1910
+ encode_options += ['-x265-params:v', @x265_params] unless @x265_params.nil?
1837
1911
  end
1838
1912
 
1839
1913
  unless @ten_bit
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'other_video_transcoding'
3
- s.version = '0.3.2'
3
+ s.version = '0.4.0'
4
4
  s.required_ruby_version = '>= 2.0'
5
5
  s.summary = 'Other tools to transcode videos.'
6
6
  s.description = <<-HERE
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: other_video_transcoding
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Don Melton
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-12 00:00:00.000000000 Z
11
+ date: 2020-11-02 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: " Other Video Transcoding is a package of tools to transcode videos.\n"
14
14
  email: don@blivet.com
@@ -30,6 +30,7 @@ files:
30
30
  - other_video_transcoding-0.2.0.gem
31
31
  - other_video_transcoding-0.3.0.gem
32
32
  - other_video_transcoding-0.3.1.gem
33
+ - other_video_transcoding-0.3.2.gem
33
34
  - other_video_transcoding.gemspec
34
35
  homepage: https://github.com/donmelton/other_video_transcoding
35
36
  licenses: