other_video_transcoding 0.6.0 → 0.7.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 +37 -0
- data/LICENSE +1 -1
- data/bin/ask-ffmpeg-log +3 -3
- data/bin/other-transcode +54 -19
- data/other_video_transcoding-0.6.0.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: 4273472e881f7379241d7ea8f6a3576b861f92c02155ad3c786fbee68cf1a376
|
4
|
+
data.tar.gz: 38e2083ce586a71c114948efccb2877a817012ea0fdfdda1f0fce371070e80ef
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f3d2b8f89b14154307b7a89c2f0ecb6368b33f9f9011363b749dac85645fd309f2cf32a8f2b3355736a29f1e74814c47aca2ea81ff70fa2e0d0e1ea0221c3c5d
|
7
|
+
data.tar.gz: 1b593c97ca2097033d068a44a5f924b413f5ead1858592efb05db115631b106500edf887ff032629b9dde6e6d307d652ddcee11af7c020046199c72602f2300f
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,43 @@
|
|
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.7.0](https://github.com/donmelton/other_video_transcoding/releases/tag/0.7.0)
|
6
|
+
|
7
|
+
Monday, January 4, 2021
|
8
|
+
|
9
|
+
* Modify `other-transcode` to lower default target bitrates in order to significantly reduce the size of transcoded output at the risk of a slight reduction in perceived quality. Via [ #89](https://github.com/donmelton/other_video_transcoding/issues/89).
|
10
|
+
|
11
|
+
H.264 video:
|
12
|
+
|
13
|
+
Resolution | old | new
|
14
|
+
--- | --- | ---
|
15
|
+
1080p (Blu-ray video) | 8000 Kbps | 6000 Kbps
|
16
|
+
720p | 4000 Kbps | 3000 Kbps
|
17
|
+
480p (DVD video) | 2000 Kbps | 1500 Kbps
|
18
|
+
|
19
|
+
HEVC video:
|
20
|
+
|
21
|
+
Resolution | old | new
|
22
|
+
--- | --- | ---
|
23
|
+
1080p (Blu-ray video) | 6000 Kbps | 4000 Kbps
|
24
|
+
720p | 3000 Kbps | 2000 Kbps
|
25
|
+
480p (DVD video) | 1500 Kbps | 1000 Kbps
|
26
|
+
|
27
|
+
Dolby Digital Plus (Enhanced AC-3) audio:
|
28
|
+
|
29
|
+
Channels | old | new
|
30
|
+
--- | --- | ---
|
31
|
+
Surround | 640 Kbps | 384 Kbps
|
32
|
+
Stereo | 256 Kbps | 192 Kbps
|
33
|
+
Mono | 128 Kbps | 96 Kbps
|
34
|
+
|
35
|
+
Note: There are no changes to default target bitrates for Dolby Digital (AC-3) and AAC audio formats.
|
36
|
+
|
37
|
+
* Change the `--eac3` option in `other-transcode` to use Dolby Digital Plus format for _all_ transcoded audio instead of just surround output.
|
38
|
+
* Deprecate the `--all-eac3` option in `other-transcode` since the `--eac3` option now has the same behavior.
|
39
|
+
* Add a `--aac-stereo` option to `other-transcode`. This uses AAC format for transcoded stereo audio output so it can be paired with `--eac3` to get that option's old behavior.
|
40
|
+
* Add a `--8-bit-vc1` option. When the color depth is currently 10-bit, this option uses an 8-bit color depth _for video inputs in VC-1 format only_.
|
41
|
+
|
5
42
|
## [0.6.0](https://github.com/donmelton/other_video_transcoding/releases/tag/0.6.0)
|
6
43
|
|
7
44
|
Tuesday, December 22, 2020
|
data/LICENSE
CHANGED
data/bin/ask-ffmpeg-log
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
#
|
3
3
|
# ask-ffmpeg-log
|
4
4
|
#
|
5
|
-
# Copyright (c) 2019-
|
5
|
+
# Copyright (c) 2019-2021 Don Melton
|
6
6
|
#
|
7
7
|
|
8
8
|
require 'abbrev'
|
@@ -16,8 +16,8 @@ module Transcoding
|
|
16
16
|
class Command
|
17
17
|
def about
|
18
18
|
<<-HERE
|
19
|
-
ask-ffmpeg-log 0.
|
20
|
-
Copyright (c) 2019-
|
19
|
+
ask-ffmpeg-log 0.7.0
|
20
|
+
Copyright (c) 2019-2021 Don Melton
|
21
21
|
HERE
|
22
22
|
end
|
23
23
|
|
data/bin/other-transcode
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
#
|
3
3
|
# other-transcode
|
4
4
|
#
|
5
|
-
# Copyright (c) 2019-
|
5
|
+
# Copyright (c) 2019-2021 Don Melton
|
6
6
|
#
|
7
7
|
|
8
8
|
require 'English'
|
@@ -18,8 +18,8 @@ module Transcoding
|
|
18
18
|
class Command
|
19
19
|
def about
|
20
20
|
<<-HERE
|
21
|
-
other-transcode 0.
|
22
|
-
Copyright (c) 2019-
|
21
|
+
other-transcode 0.7.0
|
22
|
+
Copyright (c) 2019-2021 Don Melton
|
23
23
|
HERE
|
24
24
|
end
|
25
25
|
|
@@ -91,8 +91,9 @@ Video options:
|
|
91
91
|
--x264 use x264 software video encoder
|
92
92
|
--x265 use x265 " " "
|
93
93
|
--10-bit, --no-10-bit
|
94
|
-
use 10-bit
|
94
|
+
use 10-bit color depth (default: not used for H.264,
|
95
95
|
used for HEVC with Nvidia, Intel and x265 encoders)
|
96
|
+
--8-bit-vc1 use 8-bit color depth for VC-1 format only
|
96
97
|
--preset NAME apply video encoder preset
|
97
98
|
--decode vc1|all|none
|
98
99
|
set scope of automatic hardware decoder acceleration
|
@@ -253,13 +254,14 @@ Audio options:
|
|
253
254
|
|
254
255
|
def usage17
|
255
256
|
<<-HERE
|
256
|
-
--eac3 use
|
257
|
+
--eac3 use Dolby Digital Plus (E-AC-3) format for all audio
|
258
|
+
(default bitrates: 384 for surround, 192 for stereo)
|
257
259
|
HERE
|
258
260
|
end
|
259
261
|
|
260
262
|
def usage18
|
261
263
|
<<-HERE
|
262
|
-
--
|
264
|
+
--aac-stereo use AAC format for stereo audio
|
263
265
|
--limit-ac3-surround
|
264
266
|
don't copy surround audio in AC-3 format
|
265
267
|
when orginal bitrate is above transcoding bitrate
|
@@ -314,6 +316,7 @@ Requires `ffprobe`, `ffmpeg` and `mkvpropedit`.
|
|
314
316
|
@hevc = false
|
315
317
|
@encoder = nil
|
316
318
|
@ten_bit = nil
|
319
|
+
@eight_bit_vc1 = false
|
317
320
|
@preset = nil
|
318
321
|
@decode_scope = :vc1
|
319
322
|
@decode_method = nil
|
@@ -359,8 +362,8 @@ Requires `ffprobe`, `ffmpeg` and `mkvpropedit`.
|
|
359
362
|
:title => nil,
|
360
363
|
:width => :surround
|
361
364
|
}]
|
362
|
-
@surround_bitrate =
|
363
|
-
@stereo_bitrate =
|
365
|
+
@surround_bitrate = nil
|
366
|
+
@stereo_bitrate = nil
|
364
367
|
@mono_bitrate = nil
|
365
368
|
@surround_encoder = 'ac3'
|
366
369
|
@stereo_encoder = nil
|
@@ -502,6 +505,12 @@ Requires `ffprobe`, `ffmpeg` and `mkvpropedit`.
|
|
502
505
|
|
503
506
|
opts.on '--[no-]10-bit' do |arg|
|
504
507
|
@ten_bit = arg
|
508
|
+
@eight_bit_vc1 = false
|
509
|
+
@encoder = nil if @encoder == 'copy'
|
510
|
+
end
|
511
|
+
|
512
|
+
opts.on '--8-bit-vc1' do
|
513
|
+
@eight_bit_vc1 = true
|
505
514
|
@encoder = nil if @encoder == 'copy'
|
506
515
|
end
|
507
516
|
|
@@ -848,13 +857,21 @@ Requires `ffprobe`, `ffmpeg` and `mkvpropedit`.
|
|
848
857
|
|
849
858
|
opts.on '--eac3' do
|
850
859
|
@surround_encoder = 'eac3'
|
860
|
+
@stereo_encoder = 'eac3'
|
851
861
|
end
|
852
862
|
|
853
863
|
opts.on '--all-eac3' do
|
864
|
+
Kernel.warn '**********'
|
865
|
+
Kernel.warn 'Using deprecated option: --all-eac3'
|
866
|
+
Kernel.warn '**********'
|
854
867
|
@surround_encoder = 'eac3'
|
855
868
|
@stereo_encoder = 'eac3'
|
856
869
|
end
|
857
870
|
|
871
|
+
opts.on '--aac-stereo' do
|
872
|
+
@stereo_encoder = nil
|
873
|
+
end
|
874
|
+
|
858
875
|
opts.on '--limit-ac3-surround' do
|
859
876
|
@keep_ac3_surround = false
|
860
877
|
end
|
@@ -917,14 +934,31 @@ Requires `ffprobe`, `ffmpeg` and `mkvpropedit`.
|
|
917
934
|
def configure(path)
|
918
935
|
@audio_selections.uniq!
|
919
936
|
@subtitle_selections.uniq!
|
920
|
-
|
921
|
-
|
922
|
-
|
937
|
+
|
938
|
+
if @surround_encoder == 'eac3'
|
939
|
+
@surround_bitrate ||= 384
|
940
|
+
@surround_bitrate = [[@surround_bitrate, 192].max, 768].min
|
941
|
+
else
|
942
|
+
@surround_bitrate ||= 640
|
943
|
+
@surround_bitrate = [[@surround_bitrate, 256].max, 640].min
|
944
|
+
end
|
945
|
+
|
946
|
+
if @stereo_encoder == 'eac3'
|
947
|
+
@stereo_bitrate ||= 192
|
948
|
+
@stereo_bitrate = [[@stereo_bitrate, 96].max, 768].min
|
949
|
+
else
|
950
|
+
@stereo_bitrate ||= 256
|
951
|
+
@stereo_bitrate = [[@stereo_bitrate, 128].max, 320].min
|
952
|
+
end
|
923
953
|
|
924
954
|
if @mono_bitrate.nil?
|
925
955
|
@mono_bitrate = @stereo_bitrate / 2
|
926
956
|
else
|
927
|
-
|
957
|
+
if @stereo_encoder == 'eac3'
|
958
|
+
@mono_bitrate = [[@mono_bitrate, 48].max, 768].min
|
959
|
+
else
|
960
|
+
@mono_bitrate = [[@mono_bitrate, 64].max, 256].min
|
961
|
+
end
|
928
962
|
end
|
929
963
|
|
930
964
|
[
|
@@ -966,10 +1000,10 @@ Requires `ffprobe`, `ffmpeg` and `mkvpropedit`.
|
|
966
1000
|
end
|
967
1001
|
|
968
1002
|
@ten_bit = (@hevc and @encoder =~ /(nvenc|qsv|x265)$/ ? true : false) if @ten_bit.nil?
|
969
|
-
@target_2160p ||= @hevc ?
|
970
|
-
@target_1080p ||= @hevc ? 6000
|
971
|
-
@target_720p ||= @hevc ? 3000
|
972
|
-
@target_480p ||= @hevc ? 1500
|
1003
|
+
@target_2160p ||= @hevc ? 8000 : 12000
|
1004
|
+
@target_1080p ||= @hevc ? 4000 : 6000
|
1005
|
+
@target_720p ||= @hevc ? 2000 : 3000
|
1006
|
+
@target_480p ||= @hevc ? 1000 : 1500
|
973
1007
|
@decode_method ||= @encoder =~ /nvenc$/ ? 'cuda' : 'auto'
|
974
1008
|
|
975
1009
|
if @stereo_encoder.nil?
|
@@ -1721,7 +1755,8 @@ Requires `ffprobe`, `ffmpeg` and `mkvpropedit`.
|
|
1721
1755
|
]
|
1722
1756
|
end
|
1723
1757
|
|
1724
|
-
|
1758
|
+
ten_bit = (@ten_bit ? (@eight_bit_vc1 ? (video['codec_name'] != 'vc1') : true) : false)
|
1759
|
+
hdr = ((video.fetch('pix_fmt', 'yuv420p') == 'yuv420p10le') and ten_bit)
|
1725
1760
|
|
1726
1761
|
if hdr
|
1727
1762
|
color_primaries = 'bt2020'
|
@@ -1816,7 +1851,7 @@ Requires `ffprobe`, `ffmpeg` and `mkvpropedit`.
|
|
1816
1851
|
|
1817
1852
|
Kernel.warn text
|
1818
1853
|
encode_options += ['-c:v', @encoder]
|
1819
|
-
encode_options += ['-pix_fmt:v', (@encoder =~ /(nvenc|qsv)$/ ? 'p010le' : 'yuv420p10le')] if
|
1854
|
+
encode_options += ['-pix_fmt:v', (@encoder =~ /(nvenc|qsv)$/ ? 'p010le' : 'yuv420p10le')] if ten_bit
|
1820
1855
|
encode_options += ['-b:v', "#{bitrate}k"] unless @encoder == 'copy'
|
1821
1856
|
encode_options += ['-maxrate:v', "#{maxrate}k"] if maxrate > 0
|
1822
1857
|
encode_options += ['-bufsize:v', "#{bufsize}k"] if bufsize > 0
|
@@ -1889,7 +1924,7 @@ Requires `ffprobe`, `ffmpeg` and `mkvpropedit`.
|
|
1889
1924
|
encode_options += ['-x265-params:v', @x265_params] unless @x265_params.nil?
|
1890
1925
|
end
|
1891
1926
|
|
1892
|
-
unless
|
1927
|
+
unless ten_bit
|
1893
1928
|
encode_options += ['-profile:v', 'high'] if @encoder =~ /^(h264_nvenc|h264_amf|libx264)$/
|
1894
1929
|
end
|
1895
1930
|
|
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.7.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:
|
11
|
+
date: 2021-01-04 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
|
@@ -33,6 +33,7 @@ files:
|
|
33
33
|
- other_video_transcoding-0.3.2.gem
|
34
34
|
- other_video_transcoding-0.4.0.gem
|
35
35
|
- other_video_transcoding-0.5.0.gem
|
36
|
+
- other_video_transcoding-0.6.0.gem
|
36
37
|
- other_video_transcoding.gemspec
|
37
38
|
homepage: https://github.com/donmelton/other_video_transcoding
|
38
39
|
licenses:
|