You will need a powerful OCR engine that will try to detect characters by any number of means. Tesseract is a good open source engine that will try to "parse" your image for characters by masking.
However, before submitting your OCR (Tesseract) engine, your image needs to take several steps or approaches. To provide more accurate results, you need to “clear” your image using binarization, as well as a number of other common methods, such as detecting the canny edge. Here "OpenCV" can help.
In addition, you must isolate / detect characters in images. This can be done using powerful algorithms such as Transform Width Transform
As for the detection in the video stream in android, you can run the captured frames through the cleaning and OCR engines, since they are obtained through:
onPreviewFrame(byte[] data, Camera camera)
Also check out this app , which allows OCR in continuous browsing mode.
Hope this helps