Faits: Faits: A. S._, né en 1947, - alors manoeuvre dans la maçonnerie - a été victime d'un accident professionnel le 18 août 1995. Glissant sur une planche, ce qui a provoqué une fracture luxation de la cheville gauche, il a été soigné à l'Hôpital X._ où une intervention chirurgicale (réduction et ostéosynthèse de fracture) a été pratiquée par le docteur U._. La Caisse nationale suisse d'assurance en cas d'accidents (CNA) a pris en charge le cas. Incapable de travailler depuis l'accident, S._ a été licencié pour le 31 décembre 1996 et n'a pas repris d'activité professionnelle depuis lors. Le 28 avril 1997, après avoir examiné l'assuré, le docteur G._, médecin d'arrondissement de la CNA, a fait état d'une limitation de la mobilité de la cheville gauche d'un quart; il a attesté d'une capacité de travail entière dans une activité adaptée aux limitations fonctionnelles de l'assuré. Par décision du 5 novembre 1997, confirmée le 2 juin 1998 sur opposition de l'assuré, la CNA a alloué à l'assuré une rente d'invalidité fondée sur une incapacité de gain de 20 %, avec effet au 1er juillet 1997, ainsi qu'une indemnité pour atteinte à l'intégrité d'un taux de 10 %. A.a Entre-temps, le 23 décembre 1996, S._ a présenté une demande de prestations de l'assurance-invalidité, tendant à l'octroi d'une rente. L'Office de l'assurance-invalidité pour le canton de Vaud (ci-après : l'office AI) a mis en oeuvre un stage d'évaluation au Centre d'observation professionnelle de l'assurance-invalidité (COPAI), à Genève. Selon un rapport du 22 mars 1999, l'assuré disposait d'une capacité résiduelle de travail de 70 % au minimum dans des travaux légers, simples et répétitifs, en position assise. Après avoir requis l'avis de son Service médical régional (cf. rapport des docteurs V._ et M._ du 29 janvier 2002), l'office AI a, par décision du 30 juillet 2002, rejeté la demande de prestations. Il a considéré que l'assuré disposait d'une capacité de travail dans une activité adaptée qui lui permettait de réaliser un revenu de 49'684 fr.; la perte économique (de 15,44 %) qui en résultait n'était pas susceptible d'ouvrir le droit à une rente. Après avoir requis l'avis de son Service médical régional (cf. rapport des docteurs V._ et M._ du 29 janvier 2002), l'office AI a, par décision du 30 juillet 2002, rejeté la demande de prestations. Il a considéré que l'assuré disposait d'une capacité de travail dans une activité adaptée qui lui permettait de réaliser un revenu de 49'684 fr.; la perte économique (de 15,44 %) qui en résultait n'était pas susceptible d'ouvrir le droit à une rente. B. Saisi d'un recours de l'assuré contre cette décision, le Tribunal cantonal des assurances du canton de Vaud a fait verser à la procédure le dossier de la CNA. Par jugement du 10 décembre 2003, il a débouté S._. B. Saisi d'un recours de l'assuré contre cette décision, le Tribunal cantonal des assurances du canton de Vaud a fait verser à la procédure le dossier de la CNA. Par jugement du 10 décembre 2003, il a débouté S._. C. Celui-ci interjette recours de droit administratif contre ce jugement dont il demande l'annulation, en concluant à l'octroi d'une demi-rente d'invalidité et d'une aide de l'AI «pour trouver un travail à 50 %». A l'appui de son recours, il produit un certificat médical du docteur O._, médecin traitant (du 5 septembre 2002). L'office AI conclut au rejet du recours, tandis que l'Office fédéral des assurances sociales a renoncé à se déterminer. L'office AI conclut au rejet du recours, tandis que l'Office fédéral des assurances sociales a renoncé à se déterminer. D. Le 6 août 2004, S._ a produit un courrier du docteur A._, chef de clinique adjoint de l'Hôpital Y._, daté du 27 juillet précédent. 