other_video_transcoding 0.7.0 → 0.8.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: 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.