With the prevalence of wireless imaging applications, there is an emerging need to support the exchange of videos among different communication entities. It is challenging to deliver high-quality real-time video in wireless environments due to the complexity of video signals, the fluctuating wireless bandwidth, and the error-prone wireless channels. A software-defined radio (SDR) trans-receiver has the flexibility and the reconfigurable ability of software-based programming, and it has the potential to handle the dynamic needs of a real-time video communication application. The overall goal of this project is to design and implement a cross-layer video communication system over SDR to provide satisfactory Quality of Experience (QoE) to human users. Our contributions are summarized as follows. First, we have implemented an SDR testbed that can achieve real-time video streaming in both simulation and USRP hardware. We used GNU radio, an open-source SDR platform that has libraries for various modulation schemes, error-correcting codes, and scheduling, to interact with the USRP hardware. SDR allows to easily adjust the physical layer parameters such as modulation scheme, transmission power, forward error correction, node distance, frequency, and channel bandwidth. On the other hand, the QoE for video streaming is related to application layer parameters such as initial delay, stalling, video clarity, disruption recency, etc. Based on measurement results from the testbed, we have summarized how the parameters in the physical layer and the application layer contribute to the quality of videos presented to application users. Accordingly, we have designed 2 a cross-layer protocol that jointly adjusts the physical layer parameters and the application settings to maximize the QoE for video streaming. Finally, we have integrated the cross-layer video streaming protocol in our testbed and evaluated its performance in different test conditions.