transKode

Audio Apps

Source (link to git-repo or to original if based on someone elses unmodified work): Add the source-code for this project on opencode.net

0
5 .0
Description:

About:
KDE/Qt based frontend for varios audio transcoding tools.

Supported input formats:
* aac, ape/mac, bonk, flac, la, mp2, mp3, mp4/m4a/m4b, mpc/mpp/mp+, ofr, ogg, pac, shn, spx, tta, wav, wv
* other media formats decodable by ffmpeg, mplayer, xine or gstreamer (mp1, wma, ra/ram, ac3, dts, mka, asf, avi, mpg/mpeg, wmv, qt/mov, rv/rm/rmvb, flv, 3gp, vob...)

Supported output formats:
* aac, ape/mac, bonk, flac, la, mp2, mp3, mp4/m4a/m4b, mpc/mpp/mp+, ofr, ogg, pac, shn, spx, tta, wav, wv
* other audio formats encodable by ffmpeg or gstreamer (ac3, wma, asf...)

Required dependencies:
* amaroK >= 1.3 (Amarok script) (http://amarok.kde.org/)
* TagLib >= 1.4 (http://developer.kde.org/~wheeler/taglib.html)

Optional dependencies:
* Bonk Audio (http://www.logarithmic.net/pfh/bonk)
* FAAC/FAAD (http://sourceforge.net/projects/faac/)
* FFmpeg (http://ffmpeg.mplayerhq.hu/)
* FLAC (http://flac.sourceforge.net)
* GStreamer (http://gstreamer.freedesktop.org/)
* LAME (http://lame.sourceforge.net)
* LPAC (http://www.nue.tu-berlin.de/wer/liebchen/lpac.html)
* Lossless Audio (http://www.lossless-audio.com/)
* Monkey's Audio Port (http://sourceforge.net/projects/mac-port/)
* MPlayer (http://www.mplayerhq.hu)
* Musepack (http://musepack.net)
* OGG Vorbis (http://www.vorbis.com)
* OptimFROG (http://www.losslessaudio.org/)
* Shorten (http://www.hornig.net/shorten/)
* Speex (http://www.speex.org/)
* Streamripper (http://streamripper.sourceforge.net/)
* True Audio (http://www.true-audio.com)
* TwoLAME (http://www.twolame.org/)
* WavPack (http://www.wavpack.com/)
* xine (http://xinehq.de/) + xineadump (http://sourceforge.net/projects/transkode)

Note that you don't need all of this programs to use transKode. Specifically,
you may omit most decoders if you have ffmpeg, mplayer, xine or gstreamer
installed, as they can decode most formats on their own (also, ffmpeg and
gstreamer can be used to encode most common formats).
Last changelog:

12 years ago

Version 0.7:
- Fix: bug preventing Amarok TTMD to finish if there was a transcoding error
- Fix: decoding/encoding processes priority setting was not correctly applied

C

attendant

13 years ago

yes, that's correct.

Report

ViRgiLiO

13 years ago

Very usefull program. I was looking for a tool like this a long time ago! Easy and efficient. Thanks again.

Report

AdmiralSausage

13 years ago

Both Amarok and the iPod support the Composer and Disc Number (TPOS) fields of ID3v2. This is great if (like me) you have a lot of multi-disc classical albums.

However transKode doesn't - this is frustrating when transcoding FLAC or (yuk!) Vorbis files to mp3-on-iPod.

I've submitted a patch to the sourceforge project page: http://sourceforge.net/tracker/index.php?func=detail&aid=1628154&group_id=159903&atid=813699

I'm not suggesting that the patch should go in as-is but I just wanted to share what I'd done to solve this problem for myself.

And thanks to Sergio! This "script" is great...

Report

C

attendant

13 years ago

Thanks! I included it with very minor modifications.

Report

mslanei

12 years ago

Any chance of adding the disk number when converting mp3 to m4b with FAAC, it would be so useful to have the disc field for audiobooks.

Even without though, this code is such a godsend!

Lanei

Report

Loeckchen

14 years ago

How does the "transfer to media device" hook work so the transferred files will be automatically transcoded?

I am running amaroK on a Mac via Fink and transKode doesn't compile here. I wanted to extend the amaKode Python script to hook into the media device transfer.

Report

C

attendant

13 years ago

you have to process to messages of the form transcode <input url> <output extension>, such as
transcode file:///home/sergio/input%20file.mp3 mp4

once the script is done transcoding it has to tell amarok where to find the output file with a dcop call (amarok / mediabrowser / transcodingFinished) which takes both the input url and the output url as arguments. in shell you could do
`dcop amarok mediabrowser transcodingFinished file:///home/sergio/input%20file.mp3 file:///home/sergio/output%20file.mp4 `

in case of error, use the same call but give an empty output url.
to see how it's done in transKode take a look at transkode/src/script/transkodescript.cpp file.

Report

enr1x

14 years ago

Thanks for your incredible app! What i would like to see is a window with the transcoding process, which could be nothing more than the console output of the transcoding program. For example, both lame and oggenc provide info about, for example, the average bitrate or the ETA. Keep up the good work!

Report

themonkman

14 years ago

Runs great on SuSE 10.1! Now I finally have all of my songs in .oog, faster than I ever have in the past. Thanks!!

Report

smasher

14 years ago

Does anyone know how to use a different profile than default m4a? I have tried changing the "Selected Pofile" in both 0.5 and 0.6b2 versions of transkode. They always revert back to "amaroK TTMD - m4a".

Report

C

attendant

14 years ago

could you please elaborate your question a little more? i don't quite understand your problem... is it related to the Amarok plugin? what exactly are you trying to accomplish?

Report

smasher

14 years ago

Yes, sorry for the confusion. I'm trying to use the script via Amarok 1.4.3. I would like to transfer files(flac & ogg) to my iPod Nano in mp3 format.

I try to set the "Selected Profile" via Tools > Script Manager > Transcoding > transKode Configure. I select the profile labelled "amaroK TTMD - mp3" then click on Apply and/or OK. Next I try to transfer files (flac and/or ogg) files to my media device and I always get .m4a files encoded with faac.

If I go back into the transKode configuration the Selected Profile is still set to "amaroK TTMD - mp3" unless I reload Amarok then it defaults back to "amaroK TTMD - m4a". Either way it always encodes .m4a files.

Thanks!

Report

C

attendant

14 years ago

There's some confusion about how things works. First of all the 'Selected Profile' is not the profile Amarok will use to transcode files, it's merely the one that's being viewed/edited (though this is rather confusing... I'll rename it for the next release).
When you use Amarok to automatically transfer files to your media device what happens is that Amarok sends to the script a message with the file to transcode and the desired encode type (output extension). If you always have your file encoded as m4a it's because that's what Amarok requests (I guess it assumes m4a for an iPod). The profile transKode will use is the one named 'amaroK TTMD - [received extension]' (in this case 'amaroK TTMD - m4a'). All of those profiles have a fixed encode type to assure the files are transcoded the way Amarok requested it. The right way to have your files transcoded as mp3 will require to have an option in Amarok that lets you choose the output type (I think this is being worked on but, if not, you may want to fill a feature wish). There's also a not so right way to do it: edit the file %HOME/.kde/share/apps/amarok/scripts-data/transkoderc which contains all the profiles (atm, this is the only way to change the encoding type of the fixed profiles) and change the encode type of the desired profile (though I don't know if Amarok changes the extension back to what it requested).

Report

hugogblanco

14 years ago

You're right, butan easy way to change those profiles is to do it from transkode configuration window.

Simply select the profile "amaroK TTMD - XXX", change parameters and save. That way you don't have to change "manually" transkoderc file.

Report

C

attendant

14 years ago

I've thought of this but the problem is that transKode implements a (very simple) Amarok interface that's supposed to be generic. It's purpose is to allow other implementations of transcoding plugins (though i don't know of others implementing such interface).
The method described in my previous post is just a hack, anyone can knowingly accept that and bypass the normal behavior. But if anyone could inadvertently change it, then different plugins will encode the same request in different ways, which would probably end up being a mess.
Anyway... given that there're no other transcoding plugins ATM (that I know of...), and that is not in Amarok devs priority to add that sort of configuration, I'll ask them what they think about letting users change that in transKode.

Report

smasher

14 years ago

attendant,

Thanks for clearing things up. I have modified my transcoderc file for now and is working the way I want. I do believe the best way for selecting a profile would be a setting in the media device configuration within Amarok. It would give the user a choice per device.

Thanks again!

Report

collinm

14 years ago

excellent software but the gui is so so
could be very ice if you can improve it....

why not create a io slave for konqueror ...

Report

C

attendant

14 years ago

just curious, how would the konqueror io slave work (from a user pov)?
btw, i agree that the gui is a little flat atm, if anyone has any ideas on how to improve it i'd like to hear them.

Report

ejstacey

14 years ago

I run Ubuntu Dapper 6.06.

I get the following compiling errors:

Making all in shorten
make[4]: Entering directory `/tmp/transkode/src/plugins/shorten'
if /bin/sh ../../../libtool --silent --mode=compile --tag=CXX g++ -DHAVE_CONFIG_H -I. -I. -I../../.. -I../../../src/common/ -I../../../src/widgets/ -I../../../src/plugins/ -I/usr/include/kde -I/usr/share/qt3/include -I. -DQT_THREAD_SUPPORT -D_REENTRANT -Wno-long-long -Wundef -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -O2 -Wformat-security -Wmissing-format-attribute -Wno-non-virtual-dtor -fno-exceptions -fno-check-new -fno-common -MT shortenencoderdialogbase.lo -MD -MP -MF ".deps/shortenencoderdialogbase.Tpo" \
-c -o shortenencoderdialogbase.lo `test -f 'shortenencoderdialogbase.cpp' || echo './'`shortenencoderdialogbase.cpp; \
then mv -f ".deps/shortenencoderdialogbase.Tpo" ".deps/shortenencoderdialogbase.Plo"; \
else rm -f ".deps/shortenencoderdialogbase.Tpo"; exit 1; \
fi
shortenencoderdialogbase.cpp: In constructor 'ShortenEncoderDialogBase::ShortenEncoderDialogBase(QWidget*, const char*)':
shortenencoderdialogbase.cpp:114: error: invalid use of undefined type 'struct QDecSpinBox'
shortenencoderdialogbase.h:27: error: forward declaration of 'struct QDecSpinBox'
shortenencoderdialogbase.cpp:115: error: invalid use of undefined type 'struct QDecSpinBox'
shortenencoderdialogbase.h:27: error: forward declaration of 'struct QDecSpinBox'
shortenencoderdialogbase.cpp:116: error: invalid use of undefined type 'struct QDecSpinBox'
shortenencoderdialogbase.h:27: error: forward declaration of 'struct QDecSpinBox'
shortenencoderdialogbase.cpp:117: error: invalid use of undefined type 'struct QDecSpinBox'
shortenencoderdialogbase.h:27: error: forward declaration of 'struct QDecSpinBox'
shortenencoderdialogbase.cpp:118: error: invalid use of undefined type 'struct QDecSpinBox'
shortenencoderdialogbase.h:27: error: forward declaration of 'struct QDecSpinBox'
shortenencoderdialogbase.cpp:119: error: invalid use of undefined type 'struct QDecSpinBox'
shortenencoderdialogbase.h:27: error: forward declaration of 'struct QDecSpinBox'
shortenencoderdialogbase.cpp:121: error: no matching function for call to 'QGridLayout::addWidget(QDecSpinBox*&, int, int)'
/usr/share/qt3/include/qlayout.h:331: note: candidates are: void QGridLayout::addWidget(QWidget*, int, int, int)
shortenencoderdialogbase.cpp:202: error: no matching function for call to 'ShortenEncoderDialogBase::connect(QCheckBox*&, const char [15], QDecSpinBox*&, const char [18])'
/usr/share/qt3/include/qobject.h:116: note: candidates are: static bool QObject::connect(const QObject*, const char*, const QObject*, const char*)
/usr/share/qt3/include/qobject.h:226: note: bool QObject::connect(const QObject*, const char*, const char*) const
shortenencoderdialogbase.cpp:212: error: no matching function for call to 'ShortenEncoderDialogBase::setTabOrder(QCheckBox*&, QDecSpinBox*&)'
/usr/share/qt3/include/qwidget.h:313: note: candidates are: static void QWidget::setTabOrder(QWidget*, QWidget*)
shortenencoderdialogbase.cpp:213: error: no matching function for call to 'ShortenEncoderDialogBase::setTabOrder(QDecSpinBox*&, QCheckBox*&)'
/usr/share/qt3/include/qwidget.h:313: note: candidates are: static void QWidget::setTabOrder(QWidget*, QWidget*)
make[4]: *** [shortenencoderdialogbase.lo] Error 1
make[4]: Leaving directory `/tmp/transkode/src/plugins/shorten'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/tmp/transkode/src/plugins'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/tmp/transkode/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/transkode'
make: *** [all] Error 2

To fix this, I edited:
src/plugins/shorten/shortenencoderdialogbase.h

Under "#include "encoderdialog.h"" I put:
#include "../../widgets/qdecspinbox.h"

Compilation is now successful.

Report

centosx

14 years ago

I was running into this same error, seems something is happeing in a make file.


when you extract the directory from the start this file doesn't exist after running make once and erroring, the file is then present. After I Modified the line mentioned, I also had a successful build. this was trickier for building a RPM best way waould have been to patch the source of the issue.

but method taken worked and successfully built rpm for fedora core

Report

centosx

14 years ago

By the way great front end, use it for creating mp4 audio for cell phone..

Report

vetal17

14 years ago

I can't compile transkode
this is what i get:
Making all in faac
make[4]: Entering directory `/home/vetal/transkode/src/plugins/faac'
if /bin/sh ../../../libtool --silent --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I. -I../../.. -I../../../src/common/ -I../../../src/plugins/ -I/usr/include/kde -I/usr/lib/qt-3.3/include -I. -DQT_THREAD_SUPPORT -D_REENTRANT -Wno-long-long -Wundef -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -O2 -Wformat-security -Wmissing-format-attribute -Wno-non-virtual-dtor -fno-exceptions -fno-check-new -fno-common -MT faacencoderdialog.lo -MD -MP -MF ".deps/faacencoderdialog.Tpo" -c -o faacencoderdialog.lo faacencoderdialog.cpp; \
then mv -f ".deps/faacencoderdialog.Tpo" ".deps/faacencoderdialog.Plo"; else rm -f ".deps/faacencoderdialog.Tpo"; exit 1; fi
In file included from faacencoderdialog.cpp:21:
faacencoderdialog.h:29:35: error: faacencoderdialogbase.h: No such file or directory
faacencoderdialog.h:34: error: expected class-name before '{' token
faacencoderdialog.cpp: In constructor 'FAACEncoderDialog::FAACEncoderDialog(QWidget*, const char*)':
faacencoderdialog.cpp:31: error: class 'FAACEncoderDialog' does not have any field named 'FAACEncoderDialogBase'
faacencoderdialog.cpp: In member function 'virtual void FAACEncoderDialog::setSwitches(const QString&)':
faacencoderdialog.cpp:42: error: 'vbrRadioButton' was not declared in this scope
faacencoderdialog.cpp:43: error: 'vbrSlider' was not declared in this scope
faacencoderdialog.cpp:50: error: 'abrRadioButton' was not declared in this scope
faacencoderdialog.cpp:51: error: 'abrSlider' was not declared in this scope
faacencoderdialog.cpp:58: error: 'bandwidthCheckBox' was not declared in this scope
faacencoderdialog.cpp:59: error: 'bandwidthSpinBox' was not declared in this scope
faacencoderdialog.cpp:64: error: 'rawAACCheckBox' was not declared in this scope
faacencoderdialog.cpp:68: error: 'wrapAACDataCheckBox' was not declared in this scope
faacencoderdialog.cpp:72: error: 'disableTNSCheckBox' was not declared in this scope
faacencoderdialog.cpp:76: error: 'disableMSCodingCheckBox' was not declared in this scope
faacencoderdialog.cpp:81: error: 'mpegVersionCheckBox' was not declared in this scope
faacencoderdialog.cpp:82: error: 'mpegVersionComboBox' was not declared in this scope
faacencoderdialog.cpp:88: error: 'objectTypeCheckBox' was not declared in this scope
faacencoderdialog.cpp:91: error: 'objectTypeComboBox' was not declared in this scope
faacencoderdialog.cpp:93: error: 'objectTypeComboBox' was not declared in this scope
faacencoderdialog.cpp:95: error: 'objectTypeComboBox' was not declared in this scope
faacencoderdialog.cpp:101: error: 'blockTypeCheckBox' was not declared in this scope
faacencoderdialog.cpp:102: error: 'blockTypeComboBox' was not declared in this scope
faacencoderdialog.cpp: In member function 'virtual QString FAACEncoderDialog::switches()':
faacencoderdialog.cpp:110: error: 'vbrRadioButton' was not declared in this scope
faacencoderdialog.cpp:111: error: 'vbrSlider' was not declared in this scope
faacencoderdialog.cpp:113: error: 'abrSlider' was not declared in this scope
faacencoderdialog.cpp:115: error: 'bandwidthCheckBox' was not declared in this scope
faacencoderdialog.cpp:116: error: 'bandwidthSpinBox' was not declared in this scope
faacencoderdialog.cpp:118: error: 'rawAACCheckBox' was not declared in this scope
faacencoderdialog.cpp:121: error: 'wrapAACDataCheckBox' was not declared in this scope
faacencoderdialog.cpp:124: error: 'disableTNSCheckBox' was not declared in this scope
faacencoderdialog.cpp:127: error: 'disableMSCodingCheckBox' was not declared in this scope
faacencoderdialog.cpp:130: error: 'mpegVersionCheckBox' was not declared in this scope
faacencoderdialog.cpp:131: error: 'mpegVersionComboBox' was not declared in this scope
faacencoderdialog.cpp:133: error: 'objectTypeCheckBox' was not declared in this scope
faacencoderdialog.cpp:135: error: 'objectTypeComboBox' was not declared in this scope
faacencoderdialog.cpp:143: error: 'blockTypeCheckBox' was not declared in this scope
faacencoderdialog.cpp:144: error: 'blockTypeComboBox' was not declared in this scope
make[4]: *** [faacencoderdialog.lo] Error 1
make[4]: Leaving directory `/home/vetal/transkode/src/plugins/faac'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/home/vetal/transkode/src/plugins'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/vetal/transkode/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/vetal/transkode'
make: *** [all] Error 2

Report

StrassBoy

14 years ago

I have no intention in insisting, but... I had to add "qdecspinbox.h" include to ../src/plugins/speexenc/speexencencoderdialogbase.cpp, in order to be able to compile the last version (0.6b). A similar problem occured with "transkode" 0.5 (cf. my previous post)...

Did I miss something ?

P.S. My system runs under Kubuntu Dapper (GCC 4.0 and KDE 3.5.3).

Report

Emeric

14 years ago

I experienced exactly the same problem, but this time in shortencoderdialog.cpp ...
Adding the include for qdecspinbox solved it.
I'm using debian sid with kde 3.5.4

Report

C

attendant

14 years ago

please, do insist with this kind of issues, it's the only way to fix them.
now, about this specific case, speexencencoderdialogbase.cpp is an autogenerated file so adding the include to it wouldn't be a proper solution (the problem is somewhere else).
btw, are you 100% sure it was the speex dialog (its weird because qdecspinbox is a widget not used in that dialog).

regards

Report

12 years ago

Version 0.7:
- Fix: bug preventing Amarok TTMD to finish if there was a transcoding error
- Fix: decoding/encoding processes priority setting was not correctly applied

12345678910
Be the first to comment
File (click to download) Version Description PackagetypeArchitectureRelease Channel Downloads Date Filesize DL OCS-Install MD5SUM
*Needs pling-store or ocs-url to install things
Pling
0 Affiliates
Details
license
version
0.7
updated Dec 12 2007
added Apr 10 2006
downloads 24h
0
mediaviews 24h 0
pageviews 24h 3