You are here: Home » Reply

Reply To: iTunes internals



@rpedde wrote:

But for streaming, the metadata has to be front-loaded, or itunes simply won’t stream it.

Do you have any idea how to do this in a stream? I.e., to avoid first converting the AVI to a file, modify that (for streaming) and then send it to the client? It takes ~38 minutes to convert the AVI to any format, which is ‘a little lengthy’ 🙂
@rpedde wrote:

As far as why your fast start streaming file wont’ play, have you verified the metadata is front loaded? Use something that will show you the real tag order (like atomicparsley) so you can actually verify that the metadata is right.

Got a command line for that? Downloaded AtomicParsley, but I don’t know which atom to modify/check…
@rpedde wrote:

If the metadata is right, and it plays from a seekable file system, but not streamed, then I don’t really have a good answer. Something about the headers that iTunes still doesn’t like? Not sure.

The file converted with MP4Box (MP4Box -hint ) don’t play from FS at all – neither from iTunes nor QuickTime.

SUCCESS: The MPEG4IP (mp4creator -optimize one do play from FS in both iTunes and Quicktime though.

With this success, I had to modifying the way I test streaming a little – I got the latter to stream, where as the original (non fixed MOV) do not so I’m getting closer!
The changed testing phase is to set mp4v files to be SSC transcoded, make sure the script simply cat’s the file to STDOUT. This works when clicking on the actual file I want streamed.. But if clicking the AVI file (still cat’ing the streamable – working – MPEG4IP converted/fixed file though!) will (still!) make iTunes to hang up.. This is how I’ve been testing this previously, so apparently iTunes notices that it isn’t getting the file requested… ?!?

Does the way I’m/have been testing makes sence? I’ll describe it in detail any way, just in case so if it’s clear, skip the rest of the post… It will also help me get my thoughs in order – I’ve tested so many ways, I’m starting to lose track of which 🙂

mt-daapd.conf file:

mp3_dir = /share/Movies/tmp
extensions = .avi,.AVI,.mp4,.m4a,.m4v,.mov
ssc_codectypes = avi,mp4v
always_transcode = avi,mp4v
ssc_prog = /usr/local/bin/

Yes, I’m fully aware that Firefly do mp4v transcoding nativly, but this is just for test – forcing Firefly to go through the perl script for MOV files!.
The ssc_prog is basically the distributed with Firefly, with some changes (see previous post for URL to modified version).

These are the files in the directory specified:

[celia.pts/6]$ /bin/ls -CFln
total 7283480
-rw-rw-r-- 1 1000 3001 217938629 2007-12-03 11:51 Filename_asf-asf.asf
-rw-rw-r-- 1 1000 3001 733779968 2007-11-30 23:26 Filename_avi-avi.avi
-rw-rw-r-- 1 1000 3001 733779968 2007-11-30 11:52 Filename_avi-m4v.m4v
-rw-rw-r-- 1 1000 3001 733779968 2007-11-30 23:26 Filename_avi-mp4.mp4
-rw-rw-r-- 1 1000 3001 156982616 2007-11-29 10:36 Filename_m4v-m4v.m4v
-rw-rw-r-- 1 1000 3001 210032687 2007-11-29 09:19 Filename_mov-m4v.m4v
-rw-rw-r-- 1 1000 3001 210032687 2007-11-29 10:29
-rw-rw-r-- 1 1000 3001 208910498 2007-12-03 12:24 Filename_mp4-mp4.mp4
-rw-rw-r-- 1 1000 3001 706084324 2007-11-29 15:05 Filename_mpg-mp4.mp4
-rw-rw-r-- 1 1000 3001 50305682 2007-11-30 11:52 Filename_ogg-m4v.m4v
-rw-rw-r-- 1 1000 3001 1190297644 2007-11-30 13:26 Filename_wav-m4v.m4v
-rw-rw-r-- 1 1000 3001 1190301740 2007-11-29 13:20 Filename_wav-wav.wav
-rw-r--r-- 1 1000 1000 290675860 2007-12-12 13:10
-rw-r--r-- 1 1000 1000 275112028 2007-12-12 13:07
-r--r--r-- 1 1000 1000 275112028 2007-12-11 16:14

All files here originate from the Filename_avi-avi.avi file. They have been transcoded manually with ffmpeg… The *fixed* files have had additional runs through respective program.
Removing, creating and then modifying the db (basically setting has_video=1,codectype=’avi’ for all ‘%.avi‘ files and removing the extension from the title column) before restarting Firefly will show the following in iTunes:

Name                                                   Time

Previously, I have always been double clicking the first file (Filename_avi-avi). Everything have failed (streaming working files etc). But with the fixed/changed test procedure (described above), I now double click on the last file. And it streams just fine! This is also the exact same physical file that is cat’ed from the perl script…

But if I then double click on the first file again (the pure AVI file), it (iTunes) hangs up. Even though it will receive a perfectly working file!!!

What’s going on here!?