Log in

View Full Version : Encoding 24P footage for the Web


Derrick217
13th October 2004, 14:28
Is it possible to encode 24P footage for the web? I'm thinking you can but instead of using frame rates of 15, 10, and 5 for fps (a divisiable of 3) would you use 12, 8, 6, and 4 fps (a divisible of 4). If it is possible is there anything special that needs to be done?

Mug Funky
13th October 2004, 14:45
depends what codec you use and how you want it to look.

i'd have thought the only limiting factor on streaming video was the bandwidth available. in this case, just encode at the resolution and framerate that best suits your target audience and their probable hardware capabilities.

try not to use WMV, if possible :)

keel
17th October 2004, 03:25
Originally posted by Derrick217
Is it possible to encode 24P footage for the web? I'm thinking you can but instead of using frame rates of 15, 10, and 5 for fps (a divisiable of 3) would you use 12, 8, 6, and 4 fps (a divisible of 4). If it is possible is there anything special that needs to be done?
Film is usually shot at 24 fps. When transferred to video, extra frames are added in a process called 3:2 pull-down, to make it 29.97 fps, and the frames are also interlaced. So, if you are going from this video-from-film material back to digital video for web delivery, the best bet is to do it with a program that will perform deinterlacing and telecine removal (also called intelecine) in addition to compression, such as Cleaner or Squeeze. That will restore the 29.97I to 24P, this will usually look as good as the 29.97 but require a lower data rate to get the same quality.

If the video is small enough, say 240x180, and does not have a lot of motion, then you can go to 12 fps, lowering data rate requirements from 24 fps. Once you go below 12 fps, I think strobing will be obvious, but you could go to 8, 6, etc.

If you are starting out with original 29.97 fps interlaced video (the NTSC standard) then you should just stick to the 29.97/15/10/etc. factors. You are often better off still deinterlacing it if there is moderate motion and your new vertical pixel size is greater than 240. Less than that, every other line is thrown out anyways, eliminating interlace artifacts.

scharfis_brain
17th October 2004, 09:32
for web-streams I found a good weight between framerate reduction and avoiding strobing.

All I did was just uses the 3rd of the video framerate:

PAL: 50i -> bobdeinterlace to full 50 fps -> select every 3rd frame -> 16.6666 fps
25 fps (discarding one field) needs too much bitrate
12.5 fps (discarding one field & discarding one frame) looks already jerky.

the same for NTSC.

you will get a stream with 19.98 fps.
it is fine between 30 fps & 15 fps

so: make your choice :)

keel
17th October 2004, 15:06
Originally posted by scharfis_brain
12.5 fps (discarding one field & discarding one frame) looks already jerky.

...the same for NTSC.



One painstaking way of reducing jerkiness at low frame rates is to use motion blur on the video, with a program like After Effects. A few years ago I got some medium-motion video looking real smooth at 15 fps by using AE's motion-blur features.

That is, if you have high motion from frame 354, say, to frame 365, the video will play a lot smoother if the frames in between are not sharp, but intelligently motion-blurred in the areas of the image that are changing rapidly. Kind of like using a slow shutter speed on high motion material.

It would probably take a bit of tweaking to find the right setting, and decide where to insert the motion-blur processing in the workflow. It was so long ago that I forgot...but it worked really well.

scharfis_brain
17th October 2004, 15:15
you do not need aftereffects motionblur.

just blend 4 consecutive fields together using avisynth.
this will result in a 1/4 framerate (NTSC:15fps, PAL:12.5fps) clip with full motionblur:

avisource("interlaced-video.avi")
assumetff() #or bff()
separatefields()
last.trim(1,0).mergeluma(last,0.5).mergechroma(last,0.5)
selecteven()
last.trim(1,0).mergeluma(last,0.5).mergechroma(last,0.5)
selecteven()
bicubicresize(240,176) #<- or any other web-suitable resolution

or the 1/3 framerate (NTSC:20fps, PAL:16.7fps) approach:

avisource("interlaced-video.avi")
assumetff() #or bff()
separatefields()
temporalsoften(2,255,255)
selectevery(3,1)
bicubicresize(240,176) #<- or any other web-suitable resolution

Derrick217
17th October 2004, 18:10
Originally posted by keel
Film is usually shot at 24 fps. When transferred to video, extra frames are added in a process called 3:2 pull-down, to make it 29.97 fps, and the frames are also interlaced. So, if you are going from this video-from-film material back to digital video for web delivery, the best bet is to do it with a program that will perform deinterlacing and telecine removal (also called intelecine) in addition to compression, such as Cleaner or Squeeze. That will restore the 29.97I to 24P, this will usually look as good as the 29.97 but require a lower data rate to get the same quality.

If the video is small enough, say 240x180, and does not have a lot of motion, then you can go to 12 fps, lowering data rate requirements from 24 fps. Once you go below 12 fps, I think strobing will be obvious, but you could go to 8, 6, etc.

If you are starting out with original 29.97 fps interlaced video (the NTSC standard) then you should just stick to the 29.97/15/10/etc. factors. You are often better off still deinterlacing it if there is moderate motion and your new vertical pixel size is greater than 240. Less than that, every other line is thrown out anyways, eliminating interlace artifacts.


***Thanks for the feedback and all the other replies submitted. This information really helps out.