other_video_transcoding 0.7.0 → 0.8.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: 4273472e881f7379241d7ea8f6a3576b861f92c02155ad3c786fbee68cf1a376
4
- data.tar.gz: 38e2083ce586a71c114948efccb2877a817012ea0fdfdda1f0fce371070e80ef
3
+ metadata.gz: 1b33c51af021fb92ec9d41e7b4b95e92740b9c15832f276a471d6ecd8a92abe4
4
+ data.tar.gz: c3e030f58c77f2cce69cd02a3563428f4a0f6dbed0b6216928f4c40c6b2f3d73
5
5
  SHA512:
6
- metadata.gz: f3d2b8f89b14154307b7a89c2f0ecb6368b33f9f9011363b749dac85645fd309f2cf32a8f2b3355736a29f1e74814c47aca2ea81ff70fa2e0d0e1ea0221c3c5d
7
- data.tar.gz: 1b593c97ca2097033d068a44a5f924b413f5ead1858592efb05db115631b106500edf887ff032629b9dde6e6d307d652ddcee11af7c020046199c72602f2300f
6
+ metadata.gz: 5f5e7f4135a53ed651720e0803f605a52768cb12758fcb9c13c15c4d8cc59ec94340f02aab11d9c3db9b390bf296c51b9fb7f49c8314bbf4906352252dbc4942
7
+ data.tar.gz: 8df50e3a3be13cb47483fd5b0ce9b2c9e97b3b4fe6755e5843e450bf177709df070e82e2ba18ab79c76d5f30172d588b9407b6aec25757ffcb0fd6e45e180881
data/CHANGELOG.md CHANGED
@@ -2,6 +2,19 @@
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.8.0](https://github.com/donmelton/other_video_transcoding/releases/tag/0.8.0)
6
+
7
+ Saturday, February 13, 2021
8
+
9
+ * Modify `other-transcode` to:
10
+ * No longer automatically deinterlace video with a frame rate of 29.97 FPS.
11
+ * No longer change the frame rate of any video in MPEG-2 format which was automatically deinterlaced.
12
+ * Only automatically deinterlace non-progressive video.
13
+ * Apply any automatic or explicit deinterlacing to all frames of the video, not just the interlaced frames.
14
+ * Force a constant frame rate for any video in MPEG-2 format at 29.97 FPS.
15
+ * Add a `--yadif-params` option to `other-transcode` to allow customization of the `yadif` filter used for deinterlacing.
16
+ * Remove the deprecated `--all-eac3` option of `other-transcode`.
17
+
5
18
  ## [0.7.0](https://github.com/donmelton/other_video_transcoding/releases/tag/0.7.0)
6
19
 
7
20
  Monday, January 4, 2021
data/bin/ask-ffmpeg-log CHANGED
@@ -16,7 +16,7 @@ module Transcoding
16
16
  class Command
17
17
  def about
18
18
  <<-HERE
19
- ask-ffmpeg-log 0.7.0
19
+ ask-ffmpeg-log 0.8.0
20
20
  Copyright (c) 2019-2021 Don Melton
21
21
  HERE
22
22
  end
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.7.0
21
+ other-transcode 0.8.0
22
22
  Copyright (c) 2019-2021 Don Melton
23
23
  HERE
24
24
  end
@@ -128,7 +128,7 @@ Video options:
128
128
  --deinterlace reduce interlace artifacts without changing frame rate
129
129
  (applied automatically for some inputs)
130
130
  --rate FPS force constant video frame rate
131
- (`24000/1001` applied automatically for some inputs)
131
+ (disables automatic deinterlacing)
132
132
  --detelecine drop duplicate frames to restore original frame rate
133
133
  (disables any deinterlacing and forced frame rate)
134
134
  --no-filters disable any automatic adjustments via filters
@@ -137,6 +137,8 @@ Video options:
137
137
 
138
138
  def usage10
139
139
  <<-HERE
140
+ --yadif-params KEY=VALUE[:KEY=VALUE]...
141
+ override yadif deinterlace filter configuration
140
142
  --rc-maxrate FACTOR, --rc-bufsize FACTOR
141
143
  set ratecontrol maximum rate and/or buffer size
142
144
  as multiple of video bitrate target
@@ -333,6 +335,7 @@ Requires `ffprobe`, `ffmpeg` and `mkvpropedit`.
333
335
  @rate = nil
334
336
  @detelecine = false
335
337
  @enable_filters = true
338
+ @yadif_params = nil
336
339
  @maxrate = nil
337
340
  @bufsize = nil
338
341
  @vt_allow_sw = false
@@ -633,6 +636,14 @@ Requires `ffprobe`, `ffmpeg` and `mkvpropedit`.
633
636
  @enable_filters = false
634
637
  end
635
638
 
639
+ opts.on '--yadif-params ARG' do |arg|
640
+ arg.split ':' do |param|
641
+ fail UsageError, "invalid argument: #{arg}" unless param =~ /^[\w\-]+=[\w\-\.,]+$/
642
+ end
643
+
644
+ @yadif_params = arg
645
+ end
646
+
636
647
  opts.on '--rc-maxrate ARG', Float do |arg|
637
648
  @maxrate = arg
638
649
  @encoder = nil if @encoder == 'copy'
@@ -860,14 +871,6 @@ Requires `ffprobe`, `ffmpeg` and `mkvpropedit`.
860
871
  @stereo_encoder = 'eac3'
861
872
  end
862
873
 
863
- opts.on '--all-eac3' do
864
- Kernel.warn '**********'
865
- Kernel.warn 'Using deprecated option: --all-eac3'
866
- Kernel.warn '**********'
867
- @surround_encoder = 'eac3'
868
- @stereo_encoder = 'eac3'
869
- end
870
-
871
874
  opts.on '--aac-stereo' do
872
875
  @stereo_encoder = nil
873
876
  end
@@ -1604,28 +1607,22 @@ Requires `ffprobe`, `ffmpeg` and `mkvpropedit`.
1604
1607
  end
1605
1608
 
1606
1609
  deinterlace = @deinterlace
1607
- rate = @rate
1608
-
1609
- if @enable_filters
1610
- if video['avg_frame_rate'] == '30000/1001' or video.fetch('field_order', 'progressive') != 'progressive'
1611
- deinterlace = true
1612
1610
 
1613
- if video['codec_name'] == 'mpeg2video' and video['avg_frame_rate'] != '25/1'
1614
- rate = '24000/1001'
1615
- end
1616
- end
1611
+ if @enable_filters and video.fetch('field_order', 'progressive') != 'progressive'
1612
+ deinterlace = true
1617
1613
  end
1618
1614
 
1619
1615
  frame_rate_filter = nil
1620
1616
 
1621
- if deinterlace
1622
- frame_rate_filter = 'yadif=deint=interlaced' unless @encoder == 'copy'
1617
+ if deinterlace and @encoder != 'copy'
1618
+ frame_rate_filter = 'yadif'
1619
+ frame_rate_filter += "=#{@yadif_params}" unless @yadif_params.nil?
1623
1620
  end
1624
1621
 
1625
- unless rate.nil?
1622
+ unless @rate.nil?
1626
1623
  frame_rate_filter = '' if frame_rate_filter.nil?
1627
1624
  frame_rate_filter += ',' unless frame_rate_filter.empty?
1628
- frame_rate_filter += "fps=#{rate}"
1625
+ frame_rate_filter += "fps=#{@rate}"
1629
1626
  end
1630
1627
 
1631
1628
  if @detelecine
@@ -1727,9 +1724,15 @@ Requires `ffprobe`, `ffmpeg` and `mkvpropedit`.
1727
1724
  conversion_filter = nil
1728
1725
  end
1729
1726
 
1727
+ encode_options = []
1728
+
1730
1729
  if @encoder == 'copy'
1731
1730
  filter = ''
1732
1731
  else
1732
+ if video['codec_name'] == 'mpeg2video' and video['avg_frame_rate'] == '30000/1001'
1733
+ encode_options += ['-vsync', 'cfr']
1734
+ end
1735
+
1733
1736
  filter = overlay_filter.nil? ? '' : overlay_filter
1734
1737
  filter += frame_rate_filter.nil? ? '' : ",#{frame_rate_filter}"
1735
1738
  filter += crop_filter.nil? ? '' : ",#{crop_filter}"
@@ -1739,7 +1742,7 @@ Requires `ffprobe`, `ffmpeg` and `mkvpropedit`.
1739
1742
  end
1740
1743
 
1741
1744
  if overlay_filter.nil?
1742
- encode_options = [
1745
+ encode_options += [
1743
1746
  '-map', "0:#{video['index']}"
1744
1747
  ]
1745
1748
 
@@ -1749,7 +1752,7 @@ Requires `ffprobe`, `ffmpeg` and `mkvpropedit`.
1749
1752
  ]
1750
1753
  end
1751
1754
  else
1752
- encode_options = [
1755
+ encode_options += [
1753
1756
  '-filter_complex', "[0:#{video['index']}]#{filter}[v]",
1754
1757
  '-map', '[v]'
1755
1758
  ]
Binary file
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'other_video_transcoding'
3
- s.version = '0.7.0'
3
+ s.version = '0.8.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.7.0
4
+ version: 0.8.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: 2021-01-04 00:00:00.000000000 Z
11
+ date: 2021-02-13 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
@@ -34,6 +34,7 @@ files:
34
34
  - other_video_transcoding-0.4.0.gem
35
35
  - other_video_transcoding-0.5.0.gem
36
36
  - other_video_transcoding-0.6.0.gem
37
+ - other_video_transcoding-0.7.0.gem
37
38
  - other_video_transcoding.gemspec
38
39
  homepage: https://github.com/donmelton/other_video_transcoding
39
40
  licenses:
@@ -54,7 +55,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
54
55
  - !ruby/object:Gem::Version
55
56
  version: '0'
56
57
  requirements: []
57
- rubygems_version: 3.1.2
58
+ rubygems_version: 3.1.4
58
59
  signing_key:
59
60
  specification_version: 4
60
61
  summary: Other tools to transcode videos.