$text = 'src="/video.php?oid=243375596&id=168326982&hash=3af874b43e5a73e7&hd=3"';
$text = preg_replace_callback('/src=\"\/video\.php\?(.*\&hd=\d+)\"/', function(&$matches) {
return 'src="/video.php?video=' . md5($matches[1]) . '"';
}, $text);
echo $text;
в таком случае не будет ли логичнее и нагляднее просто буфер чистить в самом начале?