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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e35c9d638ce45ae7407b8a3d88f0a785b515683c30e55b2d325e3cc243c15431
4
- data.tar.gz: ae7a7405f0b57be44ee16dfc6b48c877730b4b6cd6933410a6ec3828bea124ef
3
+ metadata.gz: 4273472e881f7379241d7ea8f6a3576b861f92c02155ad3c786fbee68cf1a376
4
+ data.tar.gz: 38e2083ce586a71c114948efccb2877a817012ea0fdfdda1f0fce371070e80ef
5
5
  SHA512:
6
- metadata.gz: 15c29bac8aa3f7cb7ba9dcf6cf5c22e2c99f3b8ab8a709652166c885c5e2207873abdd2319c86cc5745aac977bab6911e50407356caa730976af465a88089dcb
7
- data.tar.gz: 56d94453fda02a51ac29ddbdc904192874712f4ea3457a647383c2628bd54ebe636447771940e80ee6335a74e16ccef0fd14d6785e9a2998a22acf7b12c2f027
6
+ metadata.gz: f3d2b8f89b14154307b7a89c2f0ecb6368b33f9f9011363b749dac85645fd309f2cf32a8f2b3355736a29f1e74814c47aca2ea81ff70fa2e0d0e1ea0221c3c5d
7
+ data.tar.gz: 1b593c97ca2097033d068a44a5f924b413f5ead1858592efb05db115631b106500edf887ff032629b9dde6e6d307d652ddcee11af7c020046199c72602f2300f
@@ -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
@@ -1,4 +1,4 @@
1
- Copyright (c) 2019-2020 Don Melton
1
+ Copyright (c) 2019-2021 Don Melton
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  of this software and associated documentation files (the "Software"), to deal
@@ -2,7 +2,7 @@
2
2
  #
3
3
  # ask-ffmpeg-log
4
4
  #
5
- # Copyright (c) 2019-2020 Don Melton
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.6.0
20
- Copyright (c) 2019-2020 Don Melton
19
+ ask-ffmpeg-log 0.7.0
20
+ Copyright (c) 2019-2021 Don Melton
21
21
  HERE
22
22
  end
23
23
 
@@ -2,7 +2,7 @@
2
2
  #
3
3
  # other-transcode
4
4
  #
5
- # Copyright (c) 2019-2020 Don Melton
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.6.0
22
- Copyright (c) 2019-2020 Don Melton
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 pixel format (default: not used for H.264,
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 Enhanced AC-3 format for surround audio
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
- --all-eac3 " " " " " all audio
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 = 640
363
- @stereo_bitrate = 256
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
- min_bitrate = @surround_encoder == 'eac3' ? 192 : 256
921
- @surround_bitrate = [[@surround_bitrate, min_bitrate].max, (@surround_encoder == 'ac3' ? 640 : 768)].min
922
- @stereo_bitrate = [[@stereo_bitrate, min_bitrate / 2].max, (@stereo_encoder == 'eac3' ? 768 : 320)].min
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
- @mono_bitrate = [[@mono_bitrate, min_bitrate / 4].max, (@stereo_encoder == 'eac3' ? 768 : 256)].min
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 ? 12000 : 16000
970
- @target_1080p ||= @hevc ? 6000 : 8000
971
- @target_720p ||= @hevc ? 3000 : 4000
972
- @target_480p ||= @hevc ? 1500 : 2000
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
- hdr = ((video.fetch('pix_fmt', 'yuv420p') == 'yuv420p10le') and @ten_bit)
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 @ten_bit
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 @ten_bit
1927
+ unless ten_bit
1893
1928
  encode_options += ['-profile:v', 'high'] if @encoder =~ /^(h264_nvenc|h264_amf|libx264)$/
1894
1929
  end
1895
1930
 
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'other_video_transcoding'
3
- s.version = '0.6.0'
3
+ s.version = '0.7.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.6.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: 2020-12-23 00:00:00.000000000 Z
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: