View Full Version : Why can't ATV stream over 4 GB files?
princealfie
Apr 10, 2007, 02:16 PM
Just wondering what is preventing the Apple TV from streaming larger than 4 GB files. If iTunes get HD quality files, then will ATV be upgradeable?
Jasonbot
Apr 10, 2007, 02:22 PM
Guess it must be to do with the actual units specs, probably can't handle anything that large for some reason even though it's just streaming the content? Maybe its the bit rate that could be too high or something?
princealfie
Apr 10, 2007, 02:23 PM
Guess it must be to do with the actual units specs, probably can't handle anything that large for some reason even though it's just streaming the content? Maybe its the bit rate that could be too high or something?
But I thought that the graphics card in the ATV kicked butt? :(
Jasonbot
Apr 10, 2007, 02:26 PM
Well Its so small, I'm assuming that maybe caching could be an issue?
clevin
Apr 10, 2007, 03:09 PM
But I thought that the graphics card in the ATV kicked butt? :(
depends on whose butt it belongs to.
anyway, I doubt graphic card is the key to the problem.
Simon R.
Apr 10, 2007, 04:57 PM
It is probably a filesystem limit. Can Tiger use files bigger than 4GB?
BornAgainMac
Apr 10, 2007, 05:21 PM
It is probably a filesystem limit. Can Tiger use files bigger than 4GB?
No. You can use larger files. But FAT32 has that limit. And Apple TV has to work with Windows. I don't know why it would be FAT32 since it doesn't matter over the network.
Krevnik
Apr 10, 2007, 05:35 PM
This is a bug in iTunes, not just the Apple TV.
Try streaming that 4+GB file to another Mac using iTunes... it won't work. This bug has been around since 7.1, and 7.0.2 couldn't stream files larger than 2GB. Apple is aware of the issue, but who knows when the fix will be available. It will likely require both an iTunes update, and an AppleTV update, but it is a software bug, so an update is a realistic possibility.
Rocketman
Apr 10, 2007, 10:47 PM
Just wondering what is preventing the Apple TV from streaming larger than 4 GB files. If iTunes get HD quality files, then will ATV be upgradeable?
The processor is 32 bit and has a 4gb file size limit. It needs a ZFS for Pentium upgrade.
Rocketman
Krevnik
Apr 10, 2007, 10:53 PM
The processor is 32 bit and has a 4gb file size limit. It needs a ZFS for Pentium upgrade.
Rocketman
No it doesn't. HFS+ handles files larger than 4GB, and so does Quicktime. As stated above, this is an iTunes bug that Apple is aware of. (I filed the bug myself)
localoid
Apr 10, 2007, 10:57 PM
This is a bug in iTunes, not just the Apple TV.
Try streaming that 4+GB file to another Mac using iTunes... it won't work. This bug has been around since 7.1, and 7.0.2 couldn't stream files larger than 2GB. Apple is aware of the issue, but who knows when the fix will be available. It will likely require both an iTunes update, and an AppleTV update, but it is a software bug, so an update is a realistic possibility.
Is this truly a "bug" or is just a hold-over from code (QuickTime?) originally written using 32-bit pointers/variables?
Krevnik
Apr 10, 2007, 11:05 PM
Is this truly a "bug" or is just a hold-over from code (QuickTime?) originally written using 32-bit pointers/variables?
Quicktime can play the file, as can iTunes. You try to stream it, and it doesn't work. iTunes bug... streaming protocols shouldn't be having this sort of arbitrary limit in the first place.
Now, you do have a point, as it is related to the limit of 32-bit pointers/addressing. This limit creates the bugs where iTunes can't tag a large file, and Quicktime can't export a large movie file (depending on the file format, ironically... DV has no issues, while anything that needs flattening like a MOV or MP4 doesn't work). But writing to files has a lot of ways to get around the limit, so 32-bit is not an excuse, because it is possible to do it... ffmpeg does it, for example. Heck, Apple even wrote the guidelines on how to deal with files larger than 4GB on the Mac.
But, the core of the matter is that it should work. Because it doesn't work, it is a bug or a code defect. Where I work, any /new/ behavior is a feature change, or a new feature. Any unexpected behavior or limit in an existing feature is a bug. ;)
localoid
Apr 10, 2007, 11:16 PM
Quicktime can play the file, as can iTunes. ...
Hmmm... interesting... Can Quicktime stream the (>4GB) file?
Krevnik
Apr 10, 2007, 11:29 PM
Hmmm... interesting... Can Quicktime stream the (>4GB) file?
Quicktime doesn't serve files, so that is a loaded question. You need something that can stream the files as a server before you can say if the client can stream it. ;)
iTunes can read and play the file. If you can read the file, you can stream it. Streamed data isn't like reading pointers, as addressing should not be absolute. When streaming content, you tell the server, "Okay, next packet", or "Gimme what you sent 5 packets back", or "Skip the next 5 packets and gimme what is after that". You don't say "Gimmie packet #5" unless you are planning for failure. So, 32-bit limitations should not apply, and even if they do, a prototcol should /really/ not be using byte addresses, and instead talking packets. If it is talking packets, then the limit would be larger than 4GB.
The behavior I have seen with iTunes is that a large file (>4GB) will attempt to play on the client, but the server won't send data, and the attempt to play the file over the network times out. That to me tells me the server is doing something bad.
localoid
Apr 10, 2007, 11:44 PM
Quicktime doesn't serve files, so that is a loaded question. You need something that can stream the files as a server before you can say if the client can stream it. ;)
Yes, I realize that, but can Apple's Darwin (open source) or QuickTime Streaming Server/QTSS (commercial) streaming servers stream a >4GB file?
Just wondering if this bug extends beyond iTunes... :)
Krevnik
Apr 10, 2007, 11:48 PM
Yes, I realize that, but can Apple's Darwin (open source) or QuickTime Streaming Server/QTSS (commercial) streaming servers stream a >4GB file?
Just wondering if this bug extends beyond iTunes... :)
Haven't tried... but if it does exist there too, then it is coincidence. iTunes uses a different protocol to stream, AFAIK.
localoid
Apr 11, 2007, 12:07 AM
... Streamed data isn't like reading pointers, as addressing should not be absolute. ...
Yeah, I realize that. But often times internal variables or fields were defined as being 32-bit wide (max) back in the days before 64-bit long int's or pointers were available. MySQL's key_buffer variable is one such example that cropped up a while back...
localoid
Apr 11, 2007, 01:22 AM
Haven't tried... but if it does exist there too, then it is coincidence. iTunes uses a different protocol to stream, AFAIK.
iTunes uses the QuickTime API tho', doesn't it? (I don't know... just asking... I assumed it did...) The QuickTime API was originally written before HFS+ and large file support existed, and the QuickTime API is still 32-bit, although the QTKit framework is 64-bit.
princealfie
Apr 11, 2007, 01:42 PM
Quicktime doesn't serve files, so that is a loaded question. You need something that can stream the files as a server before you can say if the client can stream it. ;)
iTunes can read and play the file. If you can read the file, you can stream it. Streamed data isn't like reading pointers, as addressing should not be absolute. When streaming content, you tell the server, "Okay, next packet", or "Gimme what you sent 5 packets back", or "Skip the next 5 packets and gimme what is after that". You don't say "Gimmie packet #5" unless you are planning for failure. So, 32-bit limitations should not apply, and even if they do, a prototcol should /really/ not be using byte addresses, and instead talking packets. If it is talking packets, then the limit would be larger than 4GB.
The behavior I have seen with iTunes is that a large file (>4GB) will attempt to play on the client, but the server won't send data, and the attempt to play the file over the network times out. That to me tells me the server is doing something bad.
Man, you are hilarious... streaming eh? :D
localoid
Apr 11, 2007, 03:39 PM
Man, you are hilarious... streaming eh? :D
Yep. Streaming. QuickTime technologies (http://www.apple.com/quicktime/pro/technologies.html) include: streaming (http://www.apple.com/quicktime/technologies/streaming/) and according to Apple (http://www.apple.com/quicktime/pro/technologies.html), QuickTime technology "empowers the development of innovative software such as iTunes, iMovie and Final Cut Pro..." Per Wikipedia, "FairPlay (http://en.wikipedia.org/wiki/FairPlay) is a digital rights management (DRM) technology created by Apple Inc., built in to the QuickTime multimedia technology and used by the iPod, iTunes, and the iTunes Store. ... While the iTunes jukebox remains the most popular method to buy and play FairPlay-protected files, the actual decoding is performed by Apple's QuickTime."
Krevnik
Apr 11, 2007, 04:23 PM
iTunes uses the QuickTime API tho', doesn't it? (I don't know... just asking... I assumed it did...) The QuickTime API was originally written before HFS+ and large file support existed, and the QuickTime API is still 32-bit, although the QTKit framework is 64-bit.
The Quicktime API is still 32-bit, but files aren't accessed using byte addresses (at least when reading with the exception of MPEG-2 formats, and some critical file formats do the right thing while writing as well, such as DV and a few others).
For example, the Quicktime and MPEG-4 file format are both made in such a way that the concept of a pointer doesn't exist when dealing with the file. You only deal with field lengths. So when you read the file, you read how long the next nugget of data is, which lets you skip around the file pretty effectively. The only reason a 4GB file limit comes into play is when you are writing the file, and use absolute, rather than relative, seeking when writing the file.
(My streaming comment was originally trying to point out that there is no streaming app built into OS X to try against, and there is no 'one Quicktime streaming server implementation to rule them all'... you pretty much have to author your own streaming server)
As for streaming, if we assume that iTunes uses something similar to RTSP for the actual stream, then 32-bit isn't an issue here, either. Addresses are described using time stamps, (0:00:00.00 being the start of the movie). And as Quicktime can arbitrarily jump to a particular timecode in a 5GB movie... RTSP isn't a limitation here either. It is simply that iTunes has a bug where a programmer assumed there was a 32-bit limit on the filesize somewhere
EDIT: I think I figured out what the bug is related to... DAAP, unlike RTSP, does use byte ranges in the streaming packet requests. The good news is that this byte range in DAAP is a string, so the protocol itself has no built-in limit. The downside is that this means that iTunes either needs to:
1) use 64-bit addresses, and 64-bit APIs (not an option, per se)
2) use 64-bit addresses (which is possible on 32-bit systems, via the long long C integer type), and use relative file addressing when running on 32-bit systems to get around the 4GB limit with absolute addressing when reading the file.
localoid
Apr 12, 2007, 08:02 AM
...
EDIT: I think I figured out what the bug is related to... DAAP, unlike RTSP, does use byte ranges in the streaming packet requests. The good news is that this byte range in DAAP is a string, so the protocol itself has no built-in limit. The downside is that this means that iTunes either needs to:
1) use 64-bit addresses, and 64-bit APIs (not an option, per se)
2) use 64-bit addresses (which is possible on 32-bit systems, via the long long C integer type), and use relative file addressing when running on 32-bit systems to get around the 4GB limit with absolute addressing when reading the file.
That sounds logical. You may have nailed the source of the problem. It does seem logical that DAAP, or some new variation on DAAP, is likely the protocol used to stream to the (stock) Apple TV client.
I did come across a reference to a 4GB limit for QuickTime MPEG-2 files (http://docs.info.apple.com/article.html?artnum=304656)
Krevnik
Apr 12, 2007, 11:07 AM
That sounds logical. You may have nailed the source of the problem. It does seem logical that DAAP, or some new variation on DAAP, is likely the protocol used to stream to the (stock) Apple TV client.
I did come across a reference to a 4GB limit for QuickTime MPEG-2 files (http://docs.info.apple.com/article.html?artnum=304656)
DAAP is used for iTunes streaming all the way up to iTunes 7, and adding a new handshake for the PIN (to trust the host) is not a huge deal.
There are a couple reasons for that... the spec for MPEG-2 program streams doesn't allow for files larger than 4GB (IIRC). Either that, or I am losing it.
ghall
Apr 12, 2007, 11:14 AM
My only question is why would you be streaming a 4GB video to the :apple: TV? :eek: Just curious.
EDIT: Of course, we could be talking Lord of the Rings: The extended edition. Just thought of that. :D
Cabbit
Apr 12, 2007, 11:31 AM
i have two movies ripped form hd-dvd's, one is 4.35GB and the other is 4.55GB dose this mean i cant stream them to a apple tv when i get minie?
princealfie
Apr 12, 2007, 11:31 AM
Yeah, but a Blu-Ray HD quality file equals about 15-20 GB for one file!
Thus you can't stream this through the Apple TV sadly enough.
2pac
Apr 20, 2007, 01:51 PM
is it possible that it could be firewall`s or antivirus fault?
Krevnik
Apr 22, 2007, 01:10 AM
is it possible that it could be firewall`s or antivirus fault?
Nope... that would prevent any file from streaming... this is a bug specifically with iTunes.
alfonzotan
Apr 30, 2007, 09:13 AM
Quicktime can play the file
No it can't, at least not all the way through. QT stops playback at the 4GB point. Go and try it yourself if you don't believe me; skipping to the "end" of a >4GB file in QT Player gets you to the 4GB point in that file and no farther. Identical behavior under Front Row (which certainly isn't a surprise).
Scarpad
May 1, 2007, 10:00 AM
I wonder if this is an On Purpose bug to not allow potential Rented HD content from Itunes to be streamed, in other words a Rented HD movie would have to be synced to ATV first and then Played.
Krevnik
May 1, 2007, 11:28 AM
No it can't, at least not all the way through. QT stops playback at the 4GB point. Go and try it yourself if you don't believe me; skipping to the "end" of a >4GB file in QT Player gets you to the 4GB point in that file and no farther. Identical behavior under Front Row (which certainly isn't a surprise).
Interesting. Nice find, I will probably add that to the bug. :)
I wonder if this is an On Purpose bug to not allow potential Rented HD content from Itunes to be streamed, in other words a Rented HD movie would have to be synced to ATV first and then Played.
Very, very, very unlikely... alfonzotan explains why. :)
princealfie
May 1, 2007, 04:01 PM
Do I smell a conspiracy now? Bad apple, bad apple!
Krevnik
May 1, 2007, 06:20 PM
Do I smell a conspiracy now? Bad apple, bad apple!
What conspiracy? How good is the theory when the situation has already been disproven before it gets posted? AppleTV uses the same version of Quicktime as is on your desktop. If your desktop can't play a 5GB file all the way through, neither can your AppleTV... And if iTunes can't stream a 4GB file to your AppleTV, how is it supposed to sync it to the AppleTV, might I ask? The protocol is the same for both.
basketcase
Jan 17, 2008, 11:04 PM
The iTunes 4GB file size limitation is now fixed with the latest release of iTunes. The HD rental requirement shook Apple loose to make this fix. Now I can rejoin all my oversized HD files:D. Happy Days !http://images.macrumors.com/vb/images/smilies/biggrin.gif
Blazer5913
Jan 18, 2008, 04:54 PM
The iTunes 4GB file size limitation is now fixed with the latest release of iTunes. The HD rental requirement shook Apple loose to make this fix. Now I can rejoin all my oversized HD files:D. Happy Days !http://images.macrumors.com/vb/images/smilies/biggrin.gif
Are you sure of this? Any verification or has anybody tried yet?
powerbook911
Jan 19, 2008, 01:49 AM
I've noticed my apple tv streaming from mac seems better, since the itunes update. Probably improved the way it shares/streams to devices and computers.
juanster
Jan 19, 2008, 01:53 AM
maybe osmehting to do with FAT 32 format? no?
harcosparky
Jan 19, 2008, 09:57 AM
This may be totally unrelated , or maybe not.
When I got an iPod video I was ripping movies like crazy. Putting them in iTunes and sending them to the iPod.
I recall an extremely long video file I made, was over 5 hours, I do not recall the size but it was over 4 GB. In any case when I tried to send that huge file from iTunes to the iPod it would not go.
I just cut the video in two pieces and put the two resulting files on the iPod.
Makes me think the file size issue is an iTunes issue.
NOTE: I am Debating the purchase of an Apple TV !!! ( maybe just by another iMac and hook it to the TV - if only iMac had an HDMI connector! :D )
basketcase
Jan 19, 2008, 12:47 PM
Confirming that iTunes 7.6 (29) now supports file sizes larger than 4G. Prior to this release I had to split my HD 720p H.264 content into bite sized pieces under 4GB and then label them as Movie (p1) and Movie (p2). Pain in the rear. With this new release of iTunes I am in the process of re-joining all my HD content over 4GB back to their original size. I have completed about 10 HD files so far with the largest single file size at around 8.16GB.
:D:D:D:D:D
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.