other_video_transcoding 0.3.2 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +17 -0
- data/README.md +1 -3
- data/bin/ask-ffmpeg-log +1 -1
- data/bin/other-transcode +122 -48
- data/other_video_transcoding-0.3.2.gem +0 -0
- data/other_video_transcoding.gemspec +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fa5db474ee387172ee779cd57befc925892dde23348ed6376cd35c416662576f
|
4
|
+
data.tar.gz: bd15276c43996afe54cf1bd7ad0f52eb55e5f5a6c1d90ebd36721d206eb17205
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 577dcc59ee2b7b2304ad59243abd5999851ed5a0407934eccfd25e59d320145428b40a86eb3f6938b30e6c45d2343cc20aa2b62f474e7b4d0c1dd9a99d8dc43e
|
7
|
+
data.tar.gz: 053d07452a33c7d04239e8dee324ec954e08682607871cf8c79e2cdbf0cb6bbca0dff202e8464e2fe49f80c6e7a4adb50c3a9f815636e0fe786e7ac86829ddd6
|
data/CHANGELOG.md
CHANGED
@@ -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
|
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
|
|
data/bin/ask-ffmpeg-log
CHANGED
data/bin/other-transcode
CHANGED
@@ -18,7 +18,7 @@ module Transcoding
|
|
18
18
|
class Command
|
19
19
|
def about
|
20
20
|
<<-HERE
|
21
|
-
other-transcode 0.
|
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
|
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
|
-
--
|
102
|
-
|
103
|
-
|
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
|
144
|
-
enable
|
145
|
-
--nvenc-temporal-aq
|
146
|
-
enable
|
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 =
|
319
|
-
@nvenc_temporal_aq =
|
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
|
-
|
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',
|
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
|
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',
|
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
|
-
|
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
|
-
|
1763
|
-
|
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
|
Binary file
|
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.
|
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-
|
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:
|