FireFly Media Server › Firefly Media Server Forums › Firefly Media Server › Setup Issues › Transcoding exotic formats (other than mp4a, mpeg, wav, etc)
- This topic has 8 replies, 3 voices, and was last updated 17 years, 8 months ago by Metalliferous.
-
AuthorPosts
-
07/03/2007 at 11:39 AM #1166MetalliferousParticipant
First of all I want to thank you all for the great work you’ve been doing. ๐
I’ve got firefly svn-1498 running correctly and it works.While browsing around I discovered that you can transcode other formats to wave files so you can play them with Itunes etc.
I want to transcode Adlib (OPL2) music to wav and play it in Itunes.I’ve followed instructions in the transcoding-HOWTO (http://wiki.mt-daapd.org/wiki/Transcoding_HOWTO)
I wrote a working script, and Firefly indexes the files I need.
The only problem is I can’t get firefly to transcode the files to .wav, they still show up as mp3 audio files in Itunes.Since there is no ssc_extension section anymore in the config file, I assume it has been replaced by ssc_codectypes. The problem is my format does not have a codectype related to it.
Is there a way to include the codectypes, or am I doing something wrong?
The important sections of my config file:
mt-daapd.conf:extensions = .mp3,.m4a,.m4p,.dmo
ssc_codectypes = dmo,.dmo
ssc_prog = /usr/sbin/mtdaapd2adplay.sh
(The .dmo extension is an adlib music file format adplay can play.)
mtdaapd2adplay.sh:
#!/bin/sh
# Adplay transcoder for mt-daapd
#
# Plays file $1 and write it to stdout (--output=disk --device=-)
# Then pipe it through wavstreamer with offset $2 and length $3
adplay --quiet --output=disk --device=- "$1" | wavstreamer -o $2 -l $3P.S. My transcode script works and is playable when I write the output to a .wav file.
07/03/2007 at 12:07 PM #9484fizzeParticipantYep, i thought about transcoding tracker formats (mod, s3m, far, 669, etc.) to play them on my SoundBridge…
Guess the same problems would apply there.07/03/2007 at 7:03 PM #9485rpeddeParticipant@Metalliferous wrote:
First of all I want to thank you all for the great work you’ve been doing. ๐
Thanks for saying.
I wrote a working script, and Firefly indexes the files I need.
The only problem is I can’t get firefly to transcode the files to .wav, they still show up as mp3 audio files in Itunes.Ah, yes. Unknown formats show up as codec type “unkn”. I intend to add scripted metadata scanners, so a script could dummy up the codec types to whatever they wanted. Not there yet.
You should be able to modify shipped transcode script to transcode your files as well.
— Ron
09/03/2007 at 8:58 PM #9486MetalliferousParticipant@rpedde wrote:
Ah, yes. Unknown formats show up as codec type “unkn”. I intend to add scripted metadata scanners, so a script could dummy up the codec types to whatever they wanted. Not there yet.
You should be able to modify shipped transcode script to transcode your files as well.
— Ron
What you’re trying to say is that I should take an existing codectype, rename my files to that extension, so that firefly will start the transcoding process?
I’ve been trying to get that idea to work but no luck so far. ๐
If I try to ‘fake’ firefly to take one of the internal codectypes, and use the ssc_prog to transcode it, the scanners of those codectypes won’t allow my files to be added to the database.
10/03/2007 at 10:34 PM #9487rpeddeParticipant@Metalliferous wrote:
What you’re trying to say is that I should take an existing codectype, rename my files to that extension, so that firefly will start the transcoding process?
Ah, no sorry. I wasn’t verbose enough there. Sorry.
As shipped, there is a conversion script (mt-daapd-ssc.sh) that transcodes alac, flac, and ogg. The relevant config entries look like:
ssc_codecs=alac,flac,ogg
ssc_script=/opt/bin/mt-daapd-ssc.shOr something.
Your custom files will be entered in the db with a codec type of “unkn”. So you’ll have to have a script for “unkn” types. You could do this:
ssc_codecs=unkn
ssc_script=/usr/local/bin/my-transcode-script.shExcept then, it won’t transcode ogg or flac or alac anymore. Also, it doesnt’ use wavstreamer which helps to set up the headers correctly in the generated .wav file. So I think the optimal solution is:
ssc_codecs=alac,flac,ogg,unkn
ssc_script=/opt/bin/mt-daapd-ssc.shAnd then modify the mt-daapd-ssc.sh script such that it will transcode your file type. It should be reasonably easy to modify — take a look and use copy/paste methods to integrate your stuff in.
That’s what I was getting at.
— Ron
11/03/2007 at 10:58 AM #9488MetalliferousParticipantThanks for the extensive info :D, i’ll see if I can make it work.
If it works out OK I will update the wiki with the things I learned.
11/03/2007 at 12:29 PM #9489MetalliferousParticipantIt still doesn’t work. ๐
I tried to get ogg to decode, that worked. Then I discovered that even while I commented ogg support out of the transcode script, it still worked.
This is because the ffplugin was still enabled (stupid me).I disabled the plugin, but now I can’t even decode ogg files. When I start the script with either an ogg or an dmo file, and write it to a wave file, it is playable.
In Itunes, both ogg and dmo files now show up as MP3. It’s like firefly doesn’t know it needs to transcode those files.
/etc/mt-daapd.conf:
extensions = .mp3,.m4a,.m4p,.ogg,.flac,.mpc,.dmo
ssc_codectypes = ogg, flac, alac, unkn
ssc_prog = /usr/sbin/mt-daapd-ssc.sh
In /usr/sbin/mt-daapd-ssc.sh I added the following:
ADLIBDEC=adplay
....
adlib_file() {
$ADLIBDEC --quiet --output=disk --device=- "$FILE" | $WAVSTREAMER -o $OFFSET $FORGELEN
}
.....
if ( echo $1 | grep -i ".dmo$" > /dev/null 2>&1 ); then
adlib_file
exit;
fi
P.S. I checked my song database with sqlite3, and the ogg file still shows up as ogg, my adlib files as unkn.
11/03/2007 at 9:25 PM #9490rpeddeParticipant@Metalliferous wrote:
I disabled the plugin, but now I can’t even decode ogg files. When I start the script with either an ogg or an dmo file, and write it to a wave file, it is playable.
The transcode files should show up as .wav. If not, then someting is quite wrong — the ssc-script plugin isn’t loading or something like that.
extensions = .mp3,.m4a,.m4p,.ogg,.flac,.mpc,.dmo
ssc_codectypes = ogg, flac, alac, unkn
ssc_prog = /usr/sbin/mt-daapd-ssc.sh
That looks right, so those files really should show up as “wav” files when getting file info from iTunes. If they don’t, then the rest is moot — the server has decided they don’t need to be transcoded.
In /usr/sbin/mt-daapd-ssc.sh I added the following:
ADLIBDEC=adplay
....
adlib_file() {
$ADLIBDEC --quiet --output=disk --device=- "$FILE" | $WAVSTREAMER -o $OFFSET $FORGELEN
}
.....
if ( echo $1 | grep -i ".dmo$" > /dev/null 2>&1 ); then
adlib_file
exit;
fi
This looks good.
You might want to full path to the executables:
ADLIBDEC=/path/to/adplay
and the same with oggdec, flac, wavstreamer, etc. Depending on your environment for daemons, /usr/bin or /usr/local/bin, or wherever these binaries are might not be on your path.
P.S. I checked my song database with sqlite3, and the ogg file still shows up as ogg, my adlib files as unkn.
That’s right.
12/03/2007 at 3:26 PM #9491MetalliferousParticipantOk, after some fidling with the config file I finally got it working. I will update the wiki with everything I learned.
-
AuthorPosts
- The forum ‘Setup Issues’ is closed to new topics and replies.