On 12/10/2011 11:04 PM, Philipp Überbacher wrote:
[..]
guess I'd need the whole track anyway before
making
calculations.
Yes, but not all of it at the same time. You can calculate it sequentially.
Have a look at
https://www.ohloh.net/p/Samplecat it includes a ffmpeg
audio decoder, max. gain calculation, Fons' ebur128 analysis and more..
Comment out the mime-type filter in main.c:788 to read the first audio
track from a video file.
https://github.com/avuserow/ffmpeg-replaygain seems to do what you want
but requires ffmpeg av* libs <=0.5 and/or a bit of patching.
My ffmpeg is rather recent (20111123) but the program doesn't build, so
I guess it needs patching. Seems like my ffmpeg is too new. The
implementation looks insanely complex to me.
edit ffs.c
replace "CODEC_TYPE_AUDIO" with "AVMEDIA_TYPE_AUDIO" and you are good
to
go with ffmpeg >0.5.
For ffmpeg <0.5, replace the 'avcodec_decode_audio3() call with:
int len = avcodec_decode_audio2(ffs->cc, (int16_t *) (buf + rdec),
&size, tmppkt.data, tmppkt.size)
[..]
I don't
know any command-line apps to modify meta-data on a per track
basis in-place (maybe ffmpeg can do that?), but the new liav* meta-data
API is pretty nifty.
Do you refer to
http://www.libav.org/ ?
Sorry, a typo slipped in. Yes, libavformat, libavcodec, libavutil, etc..
I prefer libav* from
ffmpeg.org not the branch
libav.org.
>> Playback
[..]
A compressor
plugin (for video-players that don't yet have one) would be
much more useful in the real world because
- purists won't care for neither replaygain nor compression
Agreed, if
purists are people who only watch professionally produced
movies or similar. In such a case there'd be no need for it.
- consumers will complain that replay-gain is
not sufficient for
long[er] films and won't care about sound-degradation by compression
Why would it not be sufficient for longer films? It can't do anything to
improve bad mixing, that's true, but there's not much one can do about
that anyway (except maybe apply some eq to make dialogs understandable).
The single loud explosion (show down) or a slammed door will dwarf all
the all whispered (sexy) dialog.
I just ran `fbff` (ffmpeg replay gain) on a The Great Dictator (1940),
Clockwork Orange (1971) and Avatar(2009). as well as
http://www.youtube.com/watch?v=f2bcPIXl8kc
They _all_ came out on zero (Max PCM value found: 1.000000, Title gain:
64.820000). Looks like they have been normalized already. (maybe youtube
and DVD master[er]s do that?!) But the dynamics are completely different.
For comparison, ebur128 reported:
Loundness-range 19.1 LU; Peak 6.7 LU for the Chaplin movie.
and
Loundness-range 11.3 LU; Peak 15.3 LU for the youtube video,
(Quite good actually, RHCP's 'Around the world' only features a
Loundness-range 4.0 LU; Peak. 19.2.)
[..]
It's a
great educational project with many problems that one will
encounter in other /real-world/ projects.
Thank you very much for that, I fear that it might be too hard. Most
students have very little coding experience. Most courses require little
coding and that is mostly done in java.
The course in question is a
beginner C/C++ course and for many students this was the first experience
with those languages.
If you want to learn hands-on CS, don't study Informatics.
Two years ago I taught the "advanced programming" class at the
Kunst-universität Linz. 3rd semester *Art* school: > 1/3 of the
students were fluent with openframeworks & openCV C++. The rest knew
either
JAVA/processing.org or Pure-data. I was pleasantly surprised.
[..]
I thought I knew them all...
Thanks, this is great and pretty close to what I/we imagined. I don't
fully understand the alsa midi mode, I think it doesn't use a pager for
many ports and I guess a way to connect a range of ports to another
would be useful as well, but it's really close to what I had in mind.
Julien will be happy to hear about this.
That pretty much takes care of this idea :)
I think Aaron is on the LAD list. IIRC he announced it on LAU and LAA
and may be willing to add a pager or other features. - just change the
subject-line :)
More detailed ideas exist
thanks to Julien Claasen.
- A simple but hopefully sane mplayer GUI
RFTL.
I sadly don't what that means :)
AWW snap. ROFL.
meaning: Mission impossible.
"Die Idee ist gut, die Welt noch nicht bereit." (Tocotronic)
It looks reasonably nice, similar to smplayer, but the devil is in the
details. And this one seems to be for OSX only.
That's why I'm sad.
>> - A new GUI for ecasound
>>
>> Another problem I might have is that most students in the course are
>> Windows users, not sure whether I can go solo.
>
> You can x-compile for windows and test with wine. ffmpeg is x-platform,
> as is mplayer and gstreamer. ..just be prepared to throw in a day or two
> to set up a x-platform build-environment.
install mingw32 and wine. As long as a project uses autoconf:
#export WINEBASEDIR=$HOME/.wine/drive_c/x-prefix
#export PKG_CONFIG_PATH=$WINEBASEDIR/lib/pkgconfig/
#./configure --host=i586-mingw32msvc --build=i386-linux \
--prefix=$HOME/.wine/drive_c/x-prefix/
#make install
Problem is: for ffmpeg you'll need a lot of time consuming dependencies.
http://nsis.sf.net is the packager/installer tool of choice.
but I'm getting more off-topic.
That's another possibility, thanks.
I guess I'll need to do something
like this no matter what the project will be.
qemu or virtualbox? is nice for running or testing apps; but IMO
developing in a VM - esp windows sucks much more than setting up a
x-compile environment.
Thanks a lot Robin,
I'm pretty much back at square one now, but that's ok. Maybe I can
develop the ecasound GUI idea, maybe I should find a team first and try
to come up with an idea together with the others.
I know that a /real wold use-case/ greatly excites students. Just you
trade that for /real world experience/. The project is superb and IMHO
not too complex:
The /lazy/ student could just write a batch script:
call `ffmpeg.exe` - parse output.., call `replaygain.exe` - parse output
call `ffmpeg.exe -acodec copy -vcodec copy -metadata replaygain=X ..`
and finish while you're still struggling with a gst-launch pipeline...
Those students who are into C/C++ will at least manage to glue existing
code and may learn about the basic mathematical complexities involved:
bit-depth, logarithms..
The rich student will outsource it, and the creative student just
delivers a remote-control for manual Volume control..
How many movies are you going to watch in your life vs. how long does it
take to adjust the volume?
robin