Commit 01e2c7d4 authored by Tong Sun's avatar Tong Sun

New upstream version 1.3.3

parent b1ea70d3
......@@ -23,6 +23,3 @@ _testmain.go
*.test
*.prof
ffcvt
.pc
*~
......@@ -44,6 +44,12 @@ Please check them out in the [wiki](https://github.com/suntong/ffcvt/wiki/).
## Download/Install
### Using `apt`
The `ffcvt` is now officially in Debian repository, so the installation is now as simple as a `apt install`/`apt-get install`:
apt install ffcvt
### Download binaries
- The latest binary executables are available under
......
......@@ -14,6 +14,7 @@
- [Environment Variables](#environment-variables)
- [Encoding Help](#encoding-help)
- [Download/Install](#downloadinstall)
- [Using `apt`](#using-`apt`)
- [Download binaries](#download-binaries)
- [Debian package](#debian-package)
- [Install Source](#install-source)
......@@ -75,6 +76,7 @@ Flags:
-force overwrite any existing none-empty file (FFCVT_FORCE)
-debug debugging level (FFCVT_DEBUG)
-ffmpeg ffmpeg program executable name (FFCVT_FFMPEG)
-version print version then exit (FFCVT_VERSION)
Details:
......@@ -123,6 +125,8 @@ Details:
copy video codec
-vea string
video encoding method append
-version
print version then exit
-ves string
video encoding method set
-vn
......@@ -156,6 +160,12 @@ Please check them out in the [wiki](https://github.com/suntong/ffcvt/wiki/).
## Download/Install
### Using `apt`
The `ffcvt` is now officially in Debian repository, so the installation is now as simple as a `apt install`/`apt-get install`:
apt install ffcvt
### Download binaries
- The latest binary executables are available under
......
ffcvt (1.3.1-1) unstable; urgency=medium
* Initial release (Closes: 902228)
-- Tong Sun <suntong001@users.sourceforge.net> Sat, 15 Dec 2018 16:54:01 -0500
Source: ffcvt
Section: utils
Priority: optional
Maintainer: Debian Go Packaging Team <pkg-go-maintainers@lists.alioth.debian.org>
Uploaders: Tong Sun <suntong001@users.sourceforge.net>
Build-Depends: debhelper (>= 11),
dh-golang,
golang-any
Standards-Version: 4.1.4
Homepage: https://github.com/suntong/ffcvt
Vcs-Browser: https://salsa.debian.org/go-team/packages/ffcvt
Vcs-Git: https://salsa.debian.org/go-team/packages/ffcvt.git
XS-Go-Import-Path: github.com/suntong/ffcvt
Testsuite: autopkgtest-pkg-go
Package: ffcvt
Architecture: any
Built-Using: ${misc:Built-Using}
Depends: ${misc:Depends},
${shlibs:Depends}
Description: ffmpeg convert wrapper tool
ffcvt - ffmpeg convert wrapper to make it simple to do high efficiency
audio/video compression (Opus/H.265) encoding, and for youtube as well.
.
The next-generation High Efficiency Video codec (HEVC), H.265 can produce
videos visually comparable to libx264's, but in about half the size;
Meanwhile the Opus audio codec is becoming the best thing ever for
compressing audio -- A 64K Opus audio stream is comparable to mp3 files of
128K to 256K bandwidth. The ffcvt makes use of such fantastic high
efficiency audio/video codec/encoding capability while shielding people
from the complicated ffmpeg command line option settings, while versatile
and powerful enough to allow advanced users to touch every corner of
audio/video encoding.
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: ffcvt
Source: https://github.com/suntong/ffcvt
Files-Excluded:
Godeps/_workspace
Files: *
Copyright: 2015
License: MIT
Files: debian/*
Copyright: 2018 Tong Sun <suntong001@users.sourceforge.net>
License: MIT
Comment: Debian packaging is licensed under the same terms as upstream
License: MIT
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
.
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
[DEFAULT]
pristine-tar = True
#!/usr/bin/make -f
override_dh_auto_install:
dh_auto_install -- --no-source
%:
dh $@ --buildsystem=golang --with=golang
version=4
opts=filenamemangle=s/.+\/v?(\d\S*)\.tar\.gz/ffcvt-\$1\.tar\.gz/,\
uversionmangle=s/(\d)[_\.\-\+]?(RC|rc|pre|dev|beta|alpha)[.]?(\d*)$/\$1~\$2\$3/ \
https://github.com/suntong/ffcvt/tags .*/v?(\d\S*)\.tar\.gz
# ffcvt -- ffmpeg convert wrapper tool
## SYNOPSIS
ffcvt [flags] [video_filename]
## OPTIONS
For `flags`, run `ffcvt` without parameters to see the comprehensive list and explanation.
## DESCRIPTION
Command `ffcvt` is an easy to use video converter that takes the burden of such daunting task from normal Joe, to harness the fantastic high efficiency audio/video codec/encoding capability long been available in `ffmpeg`, by simplifying the convoluted `ffmpeg` command line parameters.
To encode a video, all you need to do is to give one parameter to `ffcvt`, i.e., the path and file name of the video to be encoded, and `ffcvt` will take care of the rest, using the recommended values for both audio/video encoding to properly encode it for you.
It can't be more simpler than that. However, beneath the simple surface, `ffcvt` is versatile and powerful enough to allow you to touch every corner of audio/video encoding. There is a huge list of environment variables (or command-line parameters) which will allow you tweak the encoding methods and parameters to exactly what you prefer instead.
Moreover, to encode a directory full of video files, including under its sub-directories, you need just to give `ffcvt` one single parameter, the directory location, and `ffcvt` will go ahead and encode all video files under that directory, including all its sub-directories as well.
## EXAMPLES
`ffcvt` comes with comprehensive online documents. For further details,
please go to:
https://github.com/suntong/ffcvt#encoding-help
https://github.com/suntong/ffcvt/wiki
## SEE ALSO
`ffmpeg(1)`
## AUTHORS
Tong Sun <suntong@cpan.org>
////////////////////////////////////////////////////////////////////////////
// Porgram: FfCvt
// Purpose: ffmpeg convert wrapper tool
// Authors: Tong Sun (c) 2015, All rights reserved
// Authors: Tong Sun (c) 2015-2019, All rights reserved
////////////////////////////////////////////////////////////////////////////
/*
......@@ -40,8 +40,8 @@ const _encodedExt = "_.mkv"
// Global variables definitions
var (
version = "1.3.1"
date = "2018-11-18"
version = "1.3.3"
date = "2019-04-19"
sprintf = fmt.Sprintf
encodedExt string = _encodedExt
......@@ -164,6 +164,7 @@ func visitWDir(path string, f os.FileInfo, err error) error {
return nil
}
debug(path, 2)
workDirs = append(workDirs, path)
return nil
}
......@@ -171,14 +172,14 @@ func visitWDir(path string, f os.FileInfo, err error) error {
func createPar2s(workDirs []string) {
fmt.Printf("\n== Creating par2 files\n\n")
for ii, dir := range workDirs {
if ii == 0 {
// skip the root folder and deal with sub folders only
if ii == 0 && len(workDirs) > 1 {
// skip the root folder, if there are sub folders
continue
}
os.Chdir(dir)
dirName := filepath.Base(dir)
cmd := []string{"par2create", "-u", dirName + ".par2", "*" + encodedExt}
cmd := []string{"par2create", "-u", "zz_" + dirName + ".par2", "*" + encodedExt}
debug(strings.Join(cmd, " "), 1)
out, err := exec.Command(cmd[0], cmd[1:]...).CombinedOutput()
......
......@@ -29,10 +29,11 @@ func init() {
Defaults = map[string]Encoding{
"webm": {
AES: "libopus",
AEA: "-c:s copy",
VES: "libvpx-vp9",
ABR: "64k",
CRF: "37",
Ext: "_.webm",
Ext: "_.mkv",
},
"x265-opus": {
AES: "libopus",
......
......@@ -37,9 +37,9 @@ Saved: 0%
== Transcoding [1/1]: 'test1.avi'
under .
] -i ./test1.avi -c:a libopus -b:a 64k -c:v libvpx-vp9 -b:v 0 -crf 37 ./test1_.webm
] -i ./test1.avi -c:a libopus -b:a 64k -c:s copy -c:v libvpx-vp9 -b:v 0 -crf 37 ./test1_.mkv
ffcvt: to execute -
ffmpeg -i ./test1.avi -c:a libopus -b:a 64k -c:v libvpx-vp9 -b:v 0 -crf 37 ./test1_.webm
ffmpeg -i ./test1.avi -c:a libopus -b:a 64k -c:s copy -c:v libvpx-vp9 -b:v 0 -crf 37 ./test1_.mkv
Org Size: 0 MB
New Size: 0 MB
......@@ -47,21 +47,21 @@ Saved: 0%
== Transcoding [1/3]: 'test1.avi'
under .
] -i ./test1.avi -c:a libopus -b:a 64k -c:v libvpx-vp9 -b:v 0 -crf 37 ./test1_.webm
] -i ./test1.avi -c:a libopus -b:a 64k -c:s copy -c:v libvpx-vp9 -b:v 0 -crf 37 ./test1_.mkv
ffcvt: to execute -
ffmpeg -i ./test1.avi -c:a libopus -b:a 64k -c:v libvpx-vp9 -b:v 0 -crf 37 ./test1_.webm
ffmpeg -i ./test1.avi -c:a libopus -b:a 64k -c:s copy -c:v libvpx-vp9 -b:v 0 -crf 37 ./test1_.mkv
== Transcoding [2/3]: 'test2.avi'
under .
] -i ./test2.avi -c:a libopus -b:a 64k -c:v libvpx-vp9 -b:v 0 -crf 37 ./test2_.webm
] -i ./test2.avi -c:a libopus -b:a 64k -c:s copy -c:v libvpx-vp9 -b:v 0 -crf 37 ./test2_.mkv
ffcvt: to execute -
ffmpeg -i ./test2.avi -c:a libopus -b:a 64k -c:v libvpx-vp9 -b:v 0 -crf 37 ./test2_.webm
ffmpeg -i ./test2.avi -c:a libopus -b:a 64k -c:s copy -c:v libvpx-vp9 -b:v 0 -crf 37 ./test2_.mkv
== Transcoding [3/3]: 'test3.webm'
under .
] -i ./test3.webm -c:a libopus -b:a 64k -c:v libvpx-vp9 -b:v 0 -crf 37 ./test3_.webm
] -i ./test3.webm -c:a libopus -b:a 64k -c:s copy -c:v libvpx-vp9 -b:v 0 -crf 37 ./test3_.mkv
ffcvt: to execute -
ffmpeg -i ./test3.webm -c:a libopus -b:a 64k -c:v libvpx-vp9 -b:v 0 -crf 37 ./test3_.webm
ffmpeg -i ./test3.webm -c:a libopus -b:a 64k -c:s copy -c:v libvpx-vp9 -b:v 0 -crf 37 ./test3_.mkv
Org Size: 0 MB
New Size: 0 MB
......@@ -72,21 +72,21 @@ Saved: 0%
== Transcoding [1/3]: 'test1.avi'
under .
] -i ./test1.avi -c:a libopus -b:a 64k -c:v libvpx-vp9 -b:v 0 -crf 37 /tmp/test/test1.webm
] -i ./test1.avi -c:a libopus -b:a 64k -c:s copy -c:v libvpx-vp9 -b:v 0 -crf 37 /tmp/test/test1.mkv
ffcvt: to execute -
ffmpeg -i ./test1.avi -c:a libopus -b:a 64k -c:v libvpx-vp9 -b:v 0 -crf 37 /tmp/test/test1.webm
ffmpeg -i ./test1.avi -c:a libopus -b:a 64k -c:s copy -c:v libvpx-vp9 -b:v 0 -crf 37 /tmp/test/test1.mkv
== Transcoding [2/3]: 'test2.avi'
under .
] -i ./test2.avi -c:a libopus -b:a 64k -c:v libvpx-vp9 -b:v 0 -crf 37 /tmp/test/test2.webm
] -i ./test2.avi -c:a libopus -b:a 64k -c:s copy -c:v libvpx-vp9 -b:v 0 -crf 37 /tmp/test/test2.mkv
ffcvt: to execute -
ffmpeg -i ./test2.avi -c:a libopus -b:a 64k -c:v libvpx-vp9 -b:v 0 -crf 37 /tmp/test/test2.webm
ffmpeg -i ./test2.avi -c:a libopus -b:a 64k -c:s copy -c:v libvpx-vp9 -b:v 0 -crf 37 /tmp/test/test2.mkv
== Transcoding [3/3]: 'test3.webm'
under .
] -i ./test3.webm -c:a libopus -b:a 64k -c:v libvpx-vp9 -b:v 0 -crf 37 /tmp/test/test3.webm
] -i ./test3.webm -c:a libopus -b:a 64k -c:s copy -c:v libvpx-vp9 -b:v 0 -crf 37 /tmp/test/test3.mkv
ffcvt: to execute -
ffmpeg -i ./test3.webm -c:a libopus -b:a 64k -c:v libvpx-vp9 -b:v 0 -crf 37 /tmp/test/test3.webm
ffmpeg -i ./test3.webm -c:a libopus -b:a 64k -c:s copy -c:v libvpx-vp9 -b:v 0 -crf 37 /tmp/test/test3.mkv
Org Size: 0 MB
New Size: 0 MB
......
../test/ffcvt_test.txt
\ No newline at end of file
../../test/subdir/test_s1.avi
\ No newline at end of file
../test/test-sym.sh
\ No newline at end of file
../test/test1.avi
\ No newline at end of file
../test/test2.avi
\ No newline at end of file
../test/test3.webm
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment