Some time ago, I studied the RTP protocol based on MPEG2 and completed the program that carries MPEG2 es stream on RTP. I originally wanted to compile an MPEG2 Video Broadcast Program on jrtplib. However, another video standard attracted me during this time, namely the H.263 standard. MPEG2 and H.263 were developed by two different standards organizations, MPEG2 focuses on high quality (everyone is familiar with DVDs, and everyone is eager for HD Digital cable TV). Unlike MPEG2, H.263 focuses on bit rate, therefore, it is the video compression standard of the video phone. It can be used for video chat on the 64 KB/s ISDN line (now ADSL is better ). Haha, great.
In this way, H.263 has been studied over the past two days. If you are familiar with this aspect, you should know that the latest video compression standard is H. 264, but it is still relatively new and there are not many materials. Moreover, it is important that the complex program of his algorithm is almost three times that of H.263. My research video is not intended to do experiments on PC, but to run on arm through cross-compilation. Therefore, I cannot accept such complicated programs. Therefore, I should first select H.263. As for h2.64, if you are interested in it later, you have to buy hardware solutions for products and things.
The results show that it is much simpler than MPEG2, and the entire standard is only 60 pages. Well, it's good. It's really enough. MPEG2 is really complicated. I collected documents and libraries related to H.263 on the Internet, and found that there are two commonly used documents: ffmpeg2 and TMN. I am not interested in ffmpeg2, because the interfaces on ffmpeg2 are basically the same. I have already studied this library when I studied MPEG2, I don't want to repeat it. (Of course, the product is different. If you want to decode an interface in any format, it's nice ). Therefore, the TMN library is selected, including TMN and tmndec, encoding and decoding. This library has been studied for the past two days.
The tmndec library interface is relatively simple, and its demo can be run in windows with a few modifications (mainly for learning convenience ). I have installed a complete rewrite code in my network hard drive and compiled it in vs2003. In the compressed package, I also tested output.263 by using a self-timer from my online buddy ). For ease of use, I changed the project-heavy console program to a dialog box program and encapsulated the interface for later use.
As for the encoding part, there are a lot of tmn2.0 library parameters. I found someone on the Internet who had been changed (of course, it was a foreigner), but he changed it based on TMN of version 1.6, it's a little old. I want to compare it in the next few days, and then I will understand the 2.0 library. In addition, I plan to do two things if I have time.
1. Study if RTP encapsulates H.263 data
2. Compile tmndec and port it to my arm board. The PC code is sent, and the arm receives and decodes the code, and then displays the code on the arm's 3.5-inch screen.
In addition, I have uploaded some of the intersection source code to my Sina network hard drive (the space for cnitblog is too small ).
1. Porting TMN demo
Http://800.kukudongman.com/ContentPane.aspx? Down = OK & filepath = cnitblog/fcode/ftmndec_org.rar
2. TMN modified the interface function and changed it to the code after the dialog box mode. (I hardcoded the video file path. You must modify the path first)
<Pass it back after network hard drive error just now> 〉