IPB

Welcome Guest ( Log In | Register )

4 Pages V  < 1 2 3 4 >  
Reply to this topicStart new topic
fpMP3Enc: a multi-core MP3 encoder based upon LAME 3.98.2
GeorgeFP
post Sep 30 2009, 08:44
Post #26





Group: Members
Posts: 81
Joined: 2-August 09
Member No.: 71959



QUOTE (hlloyge @ Sep 30 2009, 08:48) *
I am sorry, but where are compiled binaries? I don't really want to compile the code myself.


The main reason for not providing the binaries is that MP3 is not free and you have to pay for it. See here.
Go to the top of the page
+Quote Post
PatchWorKs
post Sep 30 2009, 10:51
Post #27





Group: Members
Posts: 498
Joined: 2-October 01
Member No.: 168



QUOTE (GeorgeFP @ Sep 30 2009, 09:44) *
The main reason for not providing the binaries is that MP3 is not free and you have to pay for it. See here.

Why not Vorbis (or even better Theora) then ?
Go to the top of the page
+Quote Post
skamp
post Sep 30 2009, 13:15
Post #28





Group: Developer
Posts: 1454
Joined: 4-May 04
From: France
Member No.: 13875



QUOTE (PatchWorKs @ Sep 30 2009, 11:51) *
Why not Vorbis

Especially since Vorbis doesn't have MP3's bit reservoir constraint (from what I understand).

QUOTE (PatchWorKs @ Sep 30 2009, 11:51) *
(or even better Theora) then ?

Well, Theora is a video codec, not really on topic…


--------------------
See my profile for measurements, tools and recommendations.
Go to the top of the page
+Quote Post
GeorgeFP
post Sep 30 2009, 13:31
Post #29





Group: Members
Posts: 81
Joined: 2-August 09
Member No.: 71959



QUOTE (PatchWorKs @ Sep 30 2009, 11:51) *
Why not Vorbis (or even better Theora) then ?

I'm thinking of making Theora multicore-capable but have not decided yet. Other projects are also very interesting, e.g. FLAC.

You should know that I'm neither an audio nor an video codec developer. And to be honest, my knowledge about MP3 is very poor.

What I wanted to show with these case studies was how algorithms can be parallelized even if everybody thinks it's too difficult or impossible. MP3 encoding was a good example for this... so I took that.
Go to the top of the page
+Quote Post
twist3d
post Oct 2 2009, 12:27
Post #30





Group: Members
Posts: 11
Joined: 1-November 05
Member No.: 25488



Any chance getting a compile to rarewares?
Go to the top of the page
+Quote Post
GeorgeFP
post Oct 28 2009, 10:02
Post #31





Group: Members
Posts: 81
Joined: 2-August 09
Member No.: 71959



Hi again,

meanwhile, I've added ID3 tagging support to fpMP3Enc to make it usable for frontends. If there's something missing, please let me know.

I was also able to make the "vbr-new" algorithm even faster: Running with 3 threads on my quad-core system the speedup was 2.59x compared to LAME and 2.75x to single-threaded fpMP3Enc which gives a 3-core efficiency of 92%.

If you download the file, you will find another sample application inside, called "fpStream", which in my eyes is the next level of multicore stream processing:

While fpMP3Enc is "single/multi file -> single encoding", fpStream is "single/multi file -> single/multi encoding". This means you can take one or more input files and perform one or more encodings on each of them.

For example, you can take one WAV file and encode one CBR MP3 and one VBR MP3 file.

I've also added Vorbis support which is in initial state because you cannot set any parameters. You will need x64 versions of libogg.dll and libvorbis.dll to use it.

fpStream is the framework that is responsible for CPU, memory and disk usage. The actual stream processing is done in the plugins, provided by me or by others. Unfortunately, the code is not well documented.

Next, I will add some parameters for Vorbis encoding and implement a plugin for FLAC encoding and decoding.
Go to the top of the page
+Quote Post
punkrockdude
post Oct 28 2009, 11:43
Post #32





Group: Members
Posts: 268
Joined: 21-February 05
Member No.: 20022



Anyone who has compiled this encoder that could send it to me? I have zero knowledge about compiling and therefore I can't do it myself and instead I ask. I use x64 Win7 if that helps. Regards
Go to the top of the page
+Quote Post
GeorgeFP
post Oct 28 2009, 20:02
Post #33





Group: Members
Posts: 81
Joined: 2-August 09
Member No.: 71959



QUOTE (punkrockdude @ Oct 28 2009, 12:43) *
Anyone who has compiled this encoder that could send it to me? I have zero knowledge about compiling and therefore I can't do it myself and instead I ask. I use x64 Win7 if that helps. Regards


I asked Roberto from RareWares if he can put the binaries on his site.
Go to the top of the page
+Quote Post
GeorgeFP
post Oct 29 2009, 10:53
Post #34





Group: Members
Posts: 81
Joined: 2-August 09
Member No.: 71959



QUOTE (GeorgeFP @ Oct 28 2009, 21:02) *
I asked Roberto from RareWares if he can put the binaries on his site.

Good news. The binaries will be available for download soon.

With the initial version of the FLAC plugin it's possible to batch-convert FLAC files (44.1kHz/2ch/16bit) directly to MP3.

The command-line for FLAC to MP3 VBR is:

FPSTREAM filemask *.flac ( readfile flac*i -f "*fp" + flacdec fdec*i -s flac*i + fpmp3enc menc*i -s fdec*i --vbr-new + fpwritemp3file mp3*i -s menc*i -f "*n.mp3" )

You can also add another MP3 encoding task by extending the command line before the ')':

+ fpmp3enc <an ID1>*i -s fdec*i [MP3 options] + fpwritemp3file <an ID2>*i -s <an ID1>*i -f <file name>

Performance is quite good...
Go to the top of the page
+Quote Post
GeorgeFP
post Nov 3 2009, 06:39
Post #35





Group: Members
Posts: 81
Joined: 2-August 09
Member No.: 71959



The download link is: http://www.rarewares.org/mp3-others.php#fpmp3enc

Many thanks to Roberto from RareWares.
Go to the top of the page
+Quote Post
Cokemonkey11
post Nov 3 2009, 07:08
Post #36





Group: Members
Posts: 27
Joined: 17-September 09
From: Ventura County
Member No.: 73252



Any chance in a GUI frontend? I'm interested in using this, and I think it will fill a gap in the market.

Vorbis/FLAC/MP3 should be the top priority!

Cheers,


--------------------
Sounds come and go, but music lives forever.
Go to the top of the page
+Quote Post
sld
post Nov 3 2009, 07:43
Post #37





Group: Members
Posts: 1017
Joined: 4-March 03
From: Singapore
Member No.: 5312



The figures thrown around here are fantastic. Many thanks to George for reviving LAME development with regards to speed.
Go to the top of the page
+Quote Post
GeorgeFP
post Nov 3 2009, 07:46
Post #38





Group: Members
Posts: 81
Joined: 2-August 09
Member No.: 71959



QUOTE (Cokemonkey11 @ Nov 3 2009, 08:08) *
Any chance in a GUI frontend? I'm interested in using this, and I think it will fill a gap in the market.

Yes, but it will take some time.

QUOTE
Vorbis/FLAC/MP3 should be the top priority!

Yes, I have already planned full support for these formats in 2009.
Go to the top of the page
+Quote Post
punkrockdude
post Nov 3 2009, 08:10
Post #39





Group: Members
Posts: 268
Joined: 21-February 05
Member No.: 20022



QUOTE (Cokemonkey11 @ Nov 3 2009, 08:08) *
Any chance in a GUI frontend? I'm interested in using this, and I think it will fill a gap in the market.

Vorbis/FLAC/MP3 should be the top priority!

Cheers,

A GUI would be awesome. Would be enough with a version that allows us (me at least) to write the normal lame switches and translates to the switches that are being used here instead.

Best Regards
Go to the top of the page
+Quote Post
Cokemonkey11
post Nov 6 2009, 02:45
Post #40





Group: Members
Posts: 27
Joined: 17-September 09
From: Ventura County
Member No.: 73252



QUOTE (GeorgeFP @ Nov 2 2009, 23:46) *
QUOTE (Cokemonkey11 @ Nov 3 2009, 08:08) *
Any chance in a GUI frontend? I'm interested in using this, and I think it will fill a gap in the market.

Yes, but it will take some time.

QUOTE
Vorbis/FLAC/MP3 should be the top priority!

Yes, I have already planned full support for these formats in 2009.


Awesome! If your encoder is cross-platform I'd highly recommend GTK+ for GUI development.

I'll be sure to donate to the project as a way of saying thanks when the time comes.

Cheers,


--------------------
Sounds come and go, but music lives forever.
Go to the top of the page
+Quote Post
GeorgeFP
post Nov 6 2009, 10:30
Post #41





Group: Members
Posts: 81
Joined: 2-August 09
Member No.: 71959



QUOTE (Cokemonkey11 @ Nov 6 2009, 03:45) *
Awesome! If your encoder is cross-platform I'd highly recommend GTK+ for GUI development.

Right now, the encoder supports only Windows OSes (recommended Vista x64, 7 x64) so I will probably use the .NET/WPF framework for the GUI. But Linux (x64) support is planned for Q1/2010.
Go to the top of the page
+Quote Post
Brent
post Nov 6 2009, 13:32
Post #42





Group: Members
Posts: 156
Joined: 27-August 07
Member No.: 46544



Have you thought about using .net/mono with gtk#? Will save you time when porting to linux.
Go to the top of the page
+Quote Post
Xire
post Nov 6 2009, 13:58
Post #43





Group: Members
Posts: 34
Joined: 11-May 08
Member No.: 53447



Any plans to support STDIN/STDOUT?
Go to the top of the page
+Quote Post
GeorgeFP
post Nov 6 2009, 14:57
Post #44





Group: Members
Posts: 81
Joined: 2-August 09
Member No.: 71959



QUOTE (Brent @ Nov 6 2009, 14:32) *
Have you thought about using .net/mono with gtk#? Will save you time when porting to linux.


That will not work because I want to use "Blend" for designing the GUI, for self-education.
Go to the top of the page
+Quote Post
GeorgeFP
post Nov 6 2009, 15:08
Post #45





Group: Members
Posts: 81
Joined: 2-August 09
Member No.: 71959



QUOTE (Xire @ Nov 6 2009, 14:58) *
Any plans to support STDIN/STDOUT?

I will add stdin/stdout support in one of the next versions.
Go to the top of the page
+Quote Post
hlloyge
post Nov 6 2009, 17:58
Post #46





Group: Members
Posts: 701
Joined: 10-January 06
From: Zagreb
Member No.: 27018



C2Q, 32 bit encoder, 32 bit windows 7, i know it says not supported... but:

CODE
Problem signature:
  Problem Event Name:    APPCRASH
  Application Name:    fpMP3Enc.exe
  Application Version:    0.0.0.0
  Application Timestamp:    4ae7fca8
  Fault Module Name:    fpMP3Enc.exe
  Fault Module Version:    0.0.0.0
  Fault Module Timestamp:    4ae7fca8
  Exception Code:    c0000005
  Exception Offset:    00016a50
  OS Version:    6.1.7600.2.0.0.256.48
  Locale ID:    1050
  Additional Information 1:    7dbb
  Additional Information 2:    7dbb9888de14eff1acc0059d88e00f09
  Additional Information 3:    2a64
  Additional Information 4:    2a64067aa8f6e15f007b8e41b2bd4c3e


It worked at home on C2D processor, the same OS, even from the same installation media smile.gif

This post has been edited by hlloyge: Nov 6 2009, 18:00
Go to the top of the page
+Quote Post
GeorgeFP
post Nov 6 2009, 18:22
Post #47





Group: Members
Posts: 81
Joined: 2-August 09
Member No.: 71959



QUOTE (hlloyge @ Nov 6 2009, 17:58) *
C2Q, 32 bit encoder, 32 bit windows 7, i know it says not supported... but:
...
It worked at home on C2D processor, the same OS, even from the same installation media smile.gif

From my initial post:

QUOTE
- Win32 version: The total WAV file size sum must not exceed 400MiB.

Maybe this was the problem?

The reason why 32-bit is not supported is that the application reserves a lot of virtual memory and often exceeds the 2 GiB limit for 32-bit.
Go to the top of the page
+Quote Post
Alexxander
post Nov 6 2009, 18:58
Post #48





Group: Members
Posts: 464
Joined: 15-November 04
Member No.: 18143



QUOTE (hlloyge @ Nov 6 2009, 17:58) *
It worked at home on C2D processor, the same OS, even from the same installation media smile.gif

It didn't work on my Win7 32 bits on Intel C2D with wav files of about 40MBytes, an mp3 file of 0 Bytes is created.

CODE
Faulting application name: fpMP3Enc.exe, version: 0.0.0.0, time stamp: 0x4ae7fca8
Faulting module name: fpMP3Enc.exe, version: 0.0.0.0, time stamp: 0x4ae7fca8
Exception code: 0xc000001d
Fault offset: 0x0000bfe7
Faulting process id: 0x120c
Faulting application start time: 0x01ca5c677d812eb7
Faulting application path: F:\Progs\fpMP3Enc\x86 (not supported)\fpMP3Enc.exe
Faulting module path: F:\Progs\fpMP3Enc\x86 (not supported)\fpMP3Enc.exe
Report Id: bc443a97-c85a-11de-bb11-000ea6f7d2d1
Go to the top of the page
+Quote Post
GeorgeFP
post Nov 6 2009, 20:57
Post #49





Group: Members
Posts: 81
Joined: 2-August 09
Member No.: 71959



QUOTE (Alexxander @ Nov 6 2009, 18:58) *
Exception code: 0xc000001d

Now I see: The binary was compiled with SSE4 support but C2D's (except "Wolfdale") don't support this instruction set.

I will think about a solution.

People who have VS2008 installed can solve this problem by building the project without SSE4 support (see "#define USE_SSE4" in stdafx.h).
Go to the top of the page
+Quote Post
hlloyge
post Nov 6 2009, 22:11
Post #50





Group: Members
Posts: 701
Joined: 10-January 06
From: Zagreb
Member No.: 27018



QUOTE (GeorgeFP @ Nov 6 2009, 19:22) *
From my initial post:
QUOTE
- Win32 version: The total WAV file size sum must not exceed 400MiB.

Maybe this was the problem?
The reason why 32-bit is not supported is that the application reserves a lot of virtual memory and often exceeds the 2 GiB limit for 32-bit.


Yep, that is the problem - the file was 500+ megs. OK. Too bad it doesn't work with bigger wav files - well, the option is to encode tracks instead images smile.gif
Go to the top of the page
+Quote Post

4 Pages V  < 1 2 3 4 >
Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 29th December 2014 - 00:25