We measure the flow of granular materials inside a quasi-two-dimensional silo as it drains and compare the data with some existing models. The particles inside the silo are imaged and tracked with unprecedented resolution in both space and time to obtain their velocity and diffusion properties. The data obtained by varying the orifice width and the hopper angle allow us to thoroughly test models of gravity driven flows inside these geometries. All of our measured velocity profiles are smooth and free of the shock-like discontinuities ('rupture zones') predicted by critical state soil mechanics. On the other hand, we find that the simple kinematic model accurately captures the mean velocity profile near the orifice, although it fails to describe the rapid transition to plug flow far away from the orifice. The measured diffusion length b, the only free parameter in the model, is not constant as usually assumed, but increases with both the height above the orifice and the angle of the hopper. We discuss improvements to the model to account for the differences. From our data, we also directly measure the diffusion of the particles and find it to be significantly less than predicted by the void model, which provides the classical microscopic derivation of the kinematic model in terms of diffusing voids in the packing. However, the experimental data are consistent with the recently proposed spot model, based on a simple mechanism for cooperative diffusion. Finally, we discuss the flow rate as a function of the orifice width and hopper angles. We find that the flow rate scales with the orifice size to the power of 1.5, consistent with dimensional analysis. Interestingly, the flow rate increases when the funnel angle is increased.