A video transmission method, apparatus, device, and readable storage medium
By sorting according to the output resolution of the video network terminal in the video network server and multi-resolution encoding is performed on the terminal, the performance waste and server pressure caused by video stream transcoding in the video network video conference are solved, and efficient video transmission is achieved.
Patent Information
- Application Number
- CN202010820642.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2020-08-14
- Publication Date
- 2025-06-27
- Estimated Expiration
- 2040-08-14
AI Technical Summary
In the video network video conferencing service, the output resolutions of multiple video network terminals are different, which causes video network servers to transcode high-resolution video streams, resulting in waste of performance and increased server pressure.
By dividing each video network terminal into two types of terminals in the video network server according to the output resolution of the video network terminal, encoding instructions are sent to terminals with higher output resolutions, allowing them to encode the original video stream at two resolutions, generating video streams of different resolutions, and sending these video streams to the corresponding terminals respectively.
It realizes that video streaming transcoding is not required for video networking servers, which reduces server pressure, and makes full use of the performance of each video networking terminal, improving the efficiency of video transmission.
Smart Images

Figure CN112104835B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of vision networking, and in particular, to a video transmission method, apparatus, device, and readable storage medium. Background Art
[0002] Currently, in the video conferencing service based on vision networking, the output resolutions of multiple vision networking terminals participating in the conference may be different. Since a vision networking terminal cannot decode a video stream with a resolution higher than its output resolution, the vision networking server needs to transcode the high-resolution video stream transmitted by the high-resolution vision networking terminal into a low-resolution video stream so that each vision networking terminal participating in the video conference can decode the received video stream.
[0003] However, after the vision networking server transcodes the video stream, the performance of the vision networking terminal with a higher output resolution among the vision networking terminals participating in the video conference cannot be effectively utilized, resulting in performance waste. Moreover, for the vision networking server, it is necessary to transcode a large number of high-resolution video streams, and the data processing pressure is relatively large. Summary of the Invention
[0004] In view of the above problems, embodiments of the present invention are proposed to provide a video transmission method, apparatus, device, and readable storage medium that overcome the above problems or at least partially solve the above problems.
[0005] To solve the above problems, an embodiment of the present invention discloses a video transmission method. The method is applied to a vision networking server in a vision networking. The vision networking includes the vision networking server and multiple vision networking terminals communicatively connected to the vision networking server. The method includes:
[0006] According to the output resolution of each of the vision networking terminals obtained in advance, the vision networking terminals are divided into a first terminal and a second terminal. The output resolution of the first terminal is a first resolution, and the output resolution of the second terminal is a second resolution. The first resolution is higher than the second resolution;
[0007] Send a first encoding instruction to the first terminal. The first encoding instruction is used to instruct the first terminal to encode the collected first original video stream according to the first resolution and the second resolution respectively to obtain a first video stream to be transmitted and a second video stream to be transmitted;
[0008] Receive the first video stream to be transmitted and the second video stream to be transmitted sent by the first terminal;
[0009] Send each of the first video streams to be transmitted to other first terminals except the first terminal that generates the first video stream to be transmitted, and send the second video stream to be transmitted to the second terminal.
[0010] Optionally, after dividing the visual networking terminals into first terminals and second terminals according to the output resolutions of each of the visual networking terminals obtained in advance, the method further includes:
[0011] Send a second encoding instruction to the second terminal, where the second encoding instruction is used to instruct the second terminal to encode the second original video stream collected according to the second resolution to obtain a third video stream to be transmitted;
[0012] Receive the third video stream to be transmitted sent by the second terminal;
[0013] Send each of the third video streams to be transmitted to the first terminal and other second terminals except the second terminal that generates the third video stream to be transmitted.
[0014] Optionally, the visual networking further includes a scheduling device communicatively connected to the visual networking server. Before dividing the visual networking terminals into first terminals and second terminals according to the output resolutions of each of the visual networking terminals obtained in advance, the method further includes:
[0015] Receive the venue information sent by the scheduling device, where the venue information includes the identity information of each visual networking terminal participating in the video conference;
[0016] The dividing the visual networking terminals into first terminals and second terminals according to the output resolutions of each of the visual networking terminals obtained in advance includes:
[0017] After receiving the start instruction of the video conference sent by the scheduling device, according to the identity information, look up the output resolutions of the visual networking terminals participating in the video conference from the information database, where the information database includes the correspondence between the identity information and the output resolutions of each visual networking terminal;
[0018] Divide the visual networking terminals participating in the video conference into first terminals and second terminals according to the output resolutions of the visual networking terminals participating in the video conference.
[0019] An embodiment of the present invention also discloses a video transmission method, which is applied to a visual networking terminal in a visual networking. The visual networking includes a visual networking server and multiple visual networking terminals communicatively connected to the visual networking server. The method includes:
[0020] Receive an encoding instruction sent by the visual networking server, where the encoding instruction includes a target resolution;
[0021] If the target resolution includes a first resolution and a second resolution, the acquired original video stream is encoded according to the first resolution and the second resolution respectively to obtain a first video stream to be transmitted and a second video stream to be transmitted;
[0022] The first video stream to be transmitted and the second video stream to be transmitted are sent to the Visual Networking server, so that the Visual Networking server sends the first video stream to be transmitted to other Visual Networking terminals with an output resolution of the first resolution, and sends the second video stream to be transmitted to Visual Networking terminals with an output resolution of the second resolution, where the first resolution is higher than the second resolution.
[0023] Optionally, if the target resolution only includes the second resolution, the method includes:
[0024] The acquired original video stream is encoded according to the second resolution to obtain a third video stream to be transmitted;
[0025] The third video stream to be transmitted is sent to the Visual Networking server, so that the Visual Networking server sends the third video stream to be transmitted to other Visual Networking terminals.
[0026] Optionally, the encoding the acquired original video stream according to the first resolution and the second resolution respectively to obtain a first video stream to be transmitted and a second video stream to be transmitted includes:
[0027] Obtain the original video stream collected by the video acquisition device;
[0028] Call a first thread to encode the original video stream according to the first resolution to obtain a first video stream to be transmitted, so that the Visual Networking server sends the first video stream to be transmitted to other Visual Networking terminals with an output resolution of the first resolution based on the port number of the first thread;
[0029] Call a second thread to encode the original video stream according to the second resolution to obtain a second video stream to be transmitted, so that the Visual Networking server sends the second video stream to be transmitted to Visual Networking terminals with an output resolution of the second resolution based on the port number of the second thread.
[0030] An embodiment of the present invention also discloses a video transmission device, which is applied to a Visual Networking server in a Visual Networking. The Visual Networking includes the Visual Networking server and multiple Visual Networking terminals communicatively connected to the Visual Networking server. The device includes:
[0031] A classification module, configured to classify the Visual Networking terminals into a first terminal and a second terminal according to the output resolution of each of the Visual Networking terminals obtained in advance. The output resolution of the first terminal is a first resolution, and the output resolution of the second terminal is a second resolution, where the first resolution is higher than the second resolution;
[0032] An instruction sending module, configured to send a first encoding instruction to the first terminal, where the first encoding instruction is used to instruct the first terminal to encode the collected first original video stream according to the first resolution and the second resolution respectively, so as to obtain a first video stream to be transmitted and a second video stream to be transmitted;
[0033] A video stream receiving module, configured to receive the first video stream to be transmitted and the second video stream to be transmitted sent by the first terminal;
[0034] A first video stream sending module, configured to send each of the first video streams to be transmitted to other first terminals except the first terminal that generates the first video stream to be transmitted, and send the second video stream to be transmitted to the second terminal.
[0035] An embodiment of the present invention further discloses a video transmission device, which is applied to a Visual Networking terminal in a Visual Network. The Visual Network includes a Visual Network server and multiple Visual Networking terminals communicatively connected to the Visual Network server. The device includes:
[0036] An instruction receiving module, configured to receive an encoding instruction sent by the Visual Network server, where the encoding instruction includes a target resolution;
[0037] An encoding module, configured to, if the target resolution includes a first resolution and a second resolution, encode the collected original video stream according to the first resolution and the second resolution respectively, so as to obtain a first video stream to be transmitted and a second video stream to be transmitted;
[0038] A second video stream sending module, configured to send the first video stream to be transmitted and the second video stream to be transmitted to the Visual Network server, so that the Visual Network server sends the first video stream to be transmitted to other Visual Networking terminals with an output resolution of the first resolution, and sends the second video stream to be transmitted to a Visual Networking terminal with an output resolution of the second resolution, where the first resolution is higher than the second resolution.
[0039] An embodiment of the present invention further discloses a video transmission device, including:
[0040] One or more processors; and
[0041] One or more machine-readable media storing instructions which, when executed by the one or more processors, cause the device to perform any of the above-described video transmission methods.
[0042] An embodiment of the present invention also discloses a computer-readable storage medium, and a computer program stored thereon causes a processor to perform any of the above-described video transmission methods.
[0043] Embodiments of the present invention have the following advantages:
[0044] Embodiments of the present invention utilize the characteristics of the video networking. When the output resolutions of each video networking terminal are different, the video networking server sends a first encoding instruction to a first terminal with a higher output resolution, so that the first terminal encodes the first original video stream collected according to a first resolution and a second resolution respectively, to obtain a first video stream to be transmitted and a second video stream to be transmitted. Then, the first video stream to be transmitted is sent to other first terminals, and the second video stream to be transmitted is sent to a second terminal with a lower output resolution. In this way, on the one hand, the first terminal performs encoding of two different resolutions to generate two video streams with different resolutions, which can meet the requirements of different video networking terminals, and the video networking server does not need to perform transcoding during the video transmission process, thereby reducing the server pressure. On the other hand, for each first terminal, it can receive the video stream with the first resolution sent by other first terminals in the video networking, so as to make full use of the performance of the first terminal. Description of the Drawings
[0045] Figure 1 is a flowchart of a video transmission method of the present invention;
[0046] Figure 2 is a flowchart of another video transmission method of the present invention;
[0047] Figure 3 is a schematic diagram of a solution of a video transmission method of the present invention;
[0048] Figure 4 is a structural diagram of a video transmission device of the present invention;
[0049] Figure 5 is a structural diagram of another video transmission device of the present invention;
[0050] Figure 6 is a schematic diagram of the networking of a video networking of the present invention;
[0051] Figure 7 is a schematic diagram of the hardware structure of a node server of the present invention;
[0052] Figure 8 is a schematic diagram of the hardware structure of an access switch of the present invention;
[0053] Figure 9 It is a schematic diagram of the hardware structure of an Ethernet protocol conversion gateway according to the present invention. Specific embodiments
[0054] To make the above objects, features, and advantages of the present invention more obvious and understandable, the present invention will be further described in detail below with reference to the accompanying drawings and specific embodiments.
[0055] In the vision network, it includes a vision network server and a plurality of vision network terminals communicatively connected to the vision network server. Among them, the vision network terminals are usually installed at the customer site and are used to implement functions such as video acquisition and output. The vision network terminals can be connected to devices such as TVs and cameras through the network. The vision network server can receive the operation signaling sent by the vision network scheduling device and initiate scheduling for all vision network terminals and video streams in the video conference.
[0056] The output resolutions of the various vision network terminals in the vision network may be different. For example, the output resolutions of the various vision network terminals may be 1080P resolution or 4K resolution respectively. Since the vision network terminals cannot decode video streams with resolutions higher than their output resolutions, in related technologies, usually the vision network server transcodes high-resolution video streams to obtain low-resolution video streams so that each vision network terminal can decode the received video stream.
[0057] However, after the vision network server transcodes the video stream, among the vision network terminals participating in the video conference, the performance of the vision network terminals with higher output resolutions cannot be effectively utilized, resulting in performance waste. Moreover, for the vision network server, it is necessary to transcode a large number of high-resolution video streams, and the data processing pressure is relatively large.
[0058] To solve the above technical problems, the embodiments of the present invention provide a video transmission method, device, equipment, and readable storage medium.
[0059] As Figure 1 shown, the embodiments of the present invention provide a video transmission method. This method is applied to the vision network server in the vision network. Among them, the vision network includes a vision network server and a plurality of vision network terminals communicatively connected to the vision network server. This method includes the following steps:
[0060] S101: According to the output resolutions of each vision network terminal obtained in advance, divide the vision network terminals into a first terminal and a second terminal. The output resolution of the first terminal is a first resolution, and the output resolution of the second terminal is a second resolution. The first resolution is higher than the second resolution.
[0061] In this step, the Visual Networking server classifies each Visual Networking terminal into two categories according to the different output resolutions of each Visual Networking terminal. For the convenience of description, the category with a higher output resolution is called the first terminal, and the category with a lower output resolution is called the second terminal.
[0062] Among them, the output resolution of the Visual Networking terminal is the highest resolution that the Visual Networking terminal can decode. In other words, due to hardware performance limitations, the Visual Networking terminal cannot process video streams with a resolution higher than its output resolution. For example, a Visual Networking terminal with an output resolution of 1080p cannot process a 4K resolution video stream, while a Visual Networking terminal with an output resolution of 4K can process a 4K resolution video stream and can also process a 1080p resolution video stream.
[0063] In the embodiment of the present invention, the Visual Networking may further include a scheduling device communicatively connected to the Visual Networking server. The scheduling device is a device installed with front-end scheduling software, and through interaction with users, functions such as pulling multiple Visual Networking terminals to the same video conference or scheduling video streams in the video conference are realized.
[0064] In the embodiment of the present invention, the scheduling device can generate the venue information of each video conference and send the venue information to the Visual Networking server. Among them, the venue information includes the identity information of each Visual Networking terminal participating in the video conference, and the identity information corresponds one-to-one with the Visual Networking terminal. That is to say, according to the identity information, the unique Visual Networking terminal in the Visual Networking that matches the identity information can be determined. For example, the identity information can be the number of the Visual Networking terminal or the ID of the Visual Networking terminal, and specific limitations are not made.
[0065] The scheduling device can also send an opening instruction for any video conference to the Visual Networking server according to the user's instruction. The opening instruction for the video conference is used to instruct the Visual Networking server to start transmitting the video stream in the video conference.
[0066] In one implementation, after receiving the opening instruction for the video conference, the Visual Networking server can, according to the venue information, look up the output resolution of the Visual Networking terminals participating in the video conference in the information database, and classify the Visual Networking terminals participating in the video conference into the first terminal and the second terminal according to the found output resolution.
[0067] Among them, the information database stores the corresponding relationship between the identity information and the output resolution of each Visual Networking terminal. The information database can be stored in the Visual Networking server, can also be stored in each Visual Networking terminal, or can be stored in a third-party database. The embodiment of the present invention does not make any limitations in this regard.
[0068] Alternatively, in another implementation, after receiving the start instruction of the video conference, the Visual Networking server may also send a resolution detection request to the Visual Networking terminals participating in the video conference, and classify the Visual Networking terminals participating in the video conference into a first terminal and a second terminal according to the output resolutions feedback by each Visual Networking terminal.
[0069] S102: Send a first encoding instruction to the first terminal. The first encoding instruction is used to instruct the first terminal to encode the first original video stream collected thereby according to a first resolution and a second resolution respectively, so as to obtain a first video stream to be transmitted and a second video stream to be transmitted.
[0070] In this step, the first encoding instruction may include the first resolution and the second resolution. In this way, after receiving the first encoding instruction, the first terminal may encode the first original video stream collected thereby according to the first resolution and the second resolution respectively, so as to obtain the first video stream to be transmitted with the first resolution and the second video stream to be transmitted with the second resolution.
[0071] That is to say, for a Visual Networking terminal with a higher output resolution, it is necessary to encode the first original video stream collected thereby twice with different resolutions, so as to obtain the first video stream to be transmitted and the second video stream to be transmitted with different resolutions. For example, if the output resolution of the first terminal is 4K and the output resolution of the second terminal is 1080p, then the first terminal encodes and generates video streams with two resolutions of 4K and 1080p.
[0072] In one implementation, the first terminal first obtains the first original video stream collected by the video capture device. The video capture device may be a device such as a camera or a surveillance camera, and the embodiments of the present invention do not limit this. Furthermore, the first terminal may call a first thread to encode the first original video stream according to the first resolution, so as to obtain the first video stream to be transmitted, and call a second thread to encode the first original video stream according to the second resolution, so as to obtain the second video stream to be transmitted. The first thread and the second thread may adopt a parallel mechanism. That is to say, the first terminal may call the first thread and the second thread simultaneously to encode the first original video stream respectively, so as to improve the real-time performance of video transmission.
[0073] In the embodiments of the present invention, after any Visual Networking terminal accesses and is classified into the first terminal or the second terminal according to the output resolution of the accessed Visual Networking terminal, the Visual Networking server may first send a first encoding instruction to the first terminal, and after receiving the video call instruction for the first terminal, send a video transmission instruction to the first terminal. In this way, the first terminal may start two different processes to encode the first original video stream collected thereby as soon as possible, and reduce the response time.
[0074] Alternatively, after receiving a video call instruction for the first terminal, the Visual Networking server may also directly send a first encoding instruction to the first terminal, so that the first terminal directly sends the obtained first video stream to be transmitted and the second video stream to be transmitted after encoding the collected first original video stream. In this way, the resource occupancy of the first terminal that has not been called can be reduced.
[0075] S103: Receive the first video stream to be transmitted and the second video stream to be transmitted sent by the first terminal.
[0076] In one implementation, when the first terminal calls the first thread and the second thread respectively to generate the first video stream to be transmitted and the second video stream to be transmitted, further, different port numbers can be set for the first thread and the second thread. Furthermore, in this step, the Visual Networking server may also receive the port number of the first thread corresponding to the first video stream to be transmitted and the port number of the second thread corresponding to the second video stream to be transmitted.
[0077] S104: Send each first video stream to be transmitted to other first terminals except the first terminal that generates the first video stream to be transmitted, and send the second video stream to be transmitted to the second terminal.
[0078] In this step, the Visual Networking server may send the first video stream to be transmitted generated by each first terminal to other first terminals except the first terminal, and send the second video stream to be transmitted generated by the first terminal to the second terminal within the Visual Networking.
[0079] In other words, the video stream with a higher output resolution generated by a Visual Networking terminal can be transmitted to other Visual Networking terminals with the same output resolution, while the video stream with a lower resolution generated by a Visual Networking terminal with a higher output resolution can be transmitted to a Visual Networking terminal with a lower output resolution. For example, if the output resolution of the first terminal is 4K and the output resolution of the second terminal is 1080p, then the first video stream to be transmitted with a 4K resolution encoded by the first terminal can be transmitted to other first terminals, and the second video stream to be transmitted with a 1080p resolution encoded by the first terminal can be transmitted to the second terminal in the Visual Networking.
[0080] In this way, the video stream generated by the first terminal can be decoded and processed by each Visual Networking terminal within the Visual Networking, reducing the situation where a Visual Networking terminal with a lower output resolution cannot process a high-resolution video stream.
[0081] In one implementation, the Visual Networking server may send the first video stream to be transmitted and the second video stream to be transmitted to the corresponding Visual Networking terminals based on the port numbers corresponding to the first video stream to be transmitted and the second video stream to be transmitted. That is to say, the first video stream to be transmitted and the second video stream to be transmitted from the same first terminal can communicate with different Visual Networking terminals simultaneously based on the corresponding different port numbers.
[0082] In an embodiment of the present invention, the Visual Networking server may also send a second encoding instruction to each second terminal, where the second encoding instruction is used to instruct the second terminal to encode the collected second original video stream according to a second resolution to obtain a third video stream to be transmitted.
[0083] That is to say, for a Visual Networking terminal with a lower output resolution, the collected second original video stream can be encoded according to a lower resolution to obtain a third video stream to be transmitted with a lower resolution. For example, if the output resolution of the first terminal is 4K and the output resolution of the second terminal is 1080p, then the second terminal only needs to encode and generate a video stream with a resolution of 1080p.
[0084] Furthermore, the Visual Networking server may receive the third video stream to be transmitted sent by the second terminal and send the third video stream to be transmitted to each first terminal in the Visual Networking and other second terminals except the second terminal that generates the third video stream to be transmitted.
[0085] As can be seen from the above, for the video transmission method provided in the embodiment of the present invention, on the one hand, the first terminal performs encoding of two different resolutions to generate two video streams with different resolutions, which can meet the needs of different Visual Networking terminals. During the video transmission process, the Visual Networking server does not need to perform transcoding, thereby reducing the server pressure. On the other hand, for each first terminal, it can receive the video stream with the first resolution sent by other first terminals in the Visual Networking, thereby making full use of the performance of the first terminal.
[0086] As Figure 2 shown, the embodiment of the present invention also provides another video transmission method, which is applied to the Visual Networking terminals in the Visual Networking. The Visual Networking includes a Visual Networking server and a plurality of Visual Networking terminals communicatively connected to the Visual Networking server. The method includes the following steps:
[0087] S201: Receive an encoding instruction sent by the Visual Networking server, where the encoding instruction includes a target resolution.
[0088] In an embodiment of the present invention, the Visual Networking terminal encodes the collected original video stream according to the encoding instruction sent by the Visual Networking server, where the encoding instruction includes a target resolution, and the target resolution is the resolution of the encoded video stream.
[0089] Each Visual Networking Terminal has a different output resolution. Due to hardware performance limitations, a Visual Networking Terminal cannot process video streams with a resolution higher than its output resolution. For example, a Visual Networking Terminal with an output resolution of 1080p cannot process a 4K video stream, while a Visual Networking Terminal with an output resolution of 4K can process a 4K video stream and can also process a 1080p video stream.
[0090] S202: If the target resolution includes a first resolution and a second resolution, then the captured original video stream is encoded according to the first resolution and the second resolution respectively to obtain a first video stream to be transmitted and a second video stream to be transmitted.
[0091] In this step, if the target resolution in the encoding instruction sent by the Visual Networking Server includes a first resolution and a second resolution, then the Visual Networking Terminal can encode the captured original video stream according to the first resolution and the second resolution respectively to obtain a first video stream to be transmitted with the first resolution and a second video stream to be transmitted with the second resolution.
[0092] In one implementation, the Visual Networking Terminal first obtains the original video stream captured by the video capture device. Furthermore, it can call the first thread to encode the original video stream according to the first resolution to obtain a first video stream to be transmitted, and call the second thread to encode the original video stream according to the second resolution to obtain a second video stream to be transmitted. Among them, the first thread and the second thread can adopt a parallel mechanism. That is to say, the Visual Networking Terminal can call the first thread and the second thread simultaneously to encode the original video stream respectively, thereby improving the real-time performance of video transmission.
[0093] S203: Send the first video stream to be transmitted and the second video stream to be transmitted to the Visual Networking Server, so that the Visual Networking Server sends the first video stream to be transmitted to other Visual Networking Terminals with the first resolution as the output resolution, and sends the second video stream to be transmitted to the Visual Networking Terminal with the second resolution as the output resolution, where the first resolution is higher than the second resolution.
[0094] In one implementation, in the case where the Visual Networking Terminal calls the first thread and the second thread respectively to generate a first video stream to be transmitted and a second video stream to be transmitted, further, different port numbers can be set for the first thread and the second thread. In this step, the Visual Networking Terminal can also send the port number of the first thread corresponding to the first video stream to be transmitted and the port number of the second thread corresponding to the second video stream to be transmitted to the Visual Networking Server.
[0095] Furthermore, the Visual Networking server can send each first video stream to be transmitted and the port number of its corresponding first thread to other Visual Networking terminals with the first resolution as the output resolution, and send each second video stream to be transmitted and the port number of its corresponding second thread to Visual Networking terminals with the second resolution as the output resolution.
[0096] In this way, the video streams generated by Visual Networking terminals with a higher output resolution can be decoded and processed by each Visual Networking terminal within the Visual Networking, reducing the situation where Visual Networking terminals with a lower output resolution cannot process high-resolution video streams.
[0097] In one implementation, if the target resolution only includes the second resolution, then the Visual Networking terminal can encode the collected original video stream according to the second resolution to obtain a third video stream to be transmitted, and send the third video stream to be transmitted to the Visual Networking server, so that the Visual Networking server sends the third video stream to be transmitted to other Visual Networking terminals.
[0098] As can be seen from the above, in the video transmission method provided by the embodiments of the present invention, the Visual Networking terminal can perform encoding at two different resolutions according to the received encoding instruction, generate video streams of two different resolutions, which can meet the needs of different Visual Networking terminals. During the video transmission process, the Visual Networking server does not need to perform transcoding, thus reducing the server pressure. Moreover, the Visual Networking terminal with a higher output resolution can receive high-resolution video streams, thereby reducing performance waste.
[0099] As Figure 3 shown, it is a schematic diagram of a solution of the video transmission method provided by the embodiments of the present invention. Among them, the Visual Networking includes a scheduling device, a Visual Networking server, and multiple Visual Networking terminals communicatively connected to the Visual Networking server.
[0100] The output resolutions of each Visual Networking terminal are 1080p resolution and 4K resolution respectively. For the convenience of description, the Visual Networking terminal with 4K resolution as the output resolution is called a 4K terminal, and the Visual Networking terminal with 1080p resolution as the output resolution is called a 1080p terminal.
[0101] There is a signaling channel between the scheduling device and the Visual Networking server, which can transmit signaling such as venue information and video conference start instructions. There are a signaling channel and a video stream channel between the Visual Networking server and the 1080p terminal or the 4K terminal, which can transmit encoding instructions and can also transmit video streams.
[0102] The 4K terminal can generate a video stream with a resolution of 4K and a video stream with a resolution of 1080p. The 4K video stream can be transmitted to other 4K terminals, and the 1080p video stream can be transmitted to 1080p terminals. The 1080p terminals can generate 1080p video streams and transmit the 1080p video streams to 4K terminals and other 1080p terminals.
[0103] It can be understood that the 4K resolution is higher than the 1080p resolution. Therefore, the 4K resolution is the first resolution, the 4K terminal is the first terminal, the 1080p resolution is the second resolution, the 1080p terminal is the second terminal, the 4K video stream sent by the 4K terminal is the first video stream to be transmitted, the 1080p video stream sent by the 4K terminal is the second video stream to be transmitted, and the 1080p video stream sent by the 1080p terminal is the third video stream to be transmitted.
[0104] It should be noted that for the method embodiments, for the sake of simple description, they are all expressed as a series of action combinations. However, those skilled in the art should know that the embodiments of the present invention are not limited by the described action sequences, because according to the embodiments of the present invention, certain steps can be performed in other sequences or simultaneously. Secondly, those skilled in the art should also know that the embodiments described in the specification are all preferred embodiments, and the actions involved are not necessarily essential for the embodiments of the present invention.
[0105] As Figure 4 shown, the embodiments of the present invention also provide a video transmission device. This method is applied to the video networking server in the video network. Among them, the video network includes a video networking server and multiple video networking terminals communicatively connected to the video networking server. The device includes:
[0106] A classification module 401, configured to classify the video networking terminals into a first terminal and a second terminal according to the output resolution of each of the video networking terminals obtained in advance. The output resolution of the first terminal is the first resolution, the output resolution of the second terminal is the second resolution, and the first resolution is higher than the second resolution;
[0107] An instruction sending module 402, configured to send a first encoding instruction to the first terminal. The first encoding instruction is used to instruct the first terminal to encode the first original video stream collected according to the first resolution and the second resolution respectively to obtain a first video stream to be transmitted and a second video stream to be transmitted;
[0108] A video stream receiving module 403, configured to receive the first video stream to be transmitted and the second video stream to be transmitted sent by the first terminal;
[0109] The first video stream sending module 404 is configured to send each of the first video streams to be transmitted to other first terminals except the first terminal that generates the first video stream to be transmitted, and send the second video stream to be transmitted to the second terminal.
[0110] In one implementation, the instruction sending module 402 is further configured to:
[0111] Send a second encoding instruction to the second terminal, where the second encoding instruction is used to instruct the second terminal to encode the second original video stream collected according to the second resolution to obtain a third video stream to be transmitted;
[0112] The video stream receiving module 403 is further configured to receive the third video stream to be transmitted sent by the second terminal;
[0113] The first video stream sending module 404 is further configured to send each of the third video streams to be transmitted to the first terminal and other second terminals except the second terminal that generates the third video stream to be transmitted.
[0114] In one implementation, the vision network further includes a scheduling device communicatively connected to the vision network server, and the apparatus further includes:
[0115] The venue information receiving module is configured to receive the venue information sent by the scheduling device, where the venue information includes the identity information of each vision network terminal participating in the video conference;
[0116] The classification module 401 is specifically configured to, after receiving the start instruction of the video conference sent by the scheduling device, according to the identity information, look up the output resolution of the vision network terminals participating in the video conference from the information database, where the information database includes the correspondence between the identity information and the output resolution of each vision network terminal; and classify the vision network terminals participating in the video conference into first terminals and second terminals according to the output resolution of the vision network terminals participating in the video conference.
[0117] As can be seen from the above, for the video transmission apparatus provided by the embodiments of the present invention, on the one hand, the first terminal performs encoding of two different resolutions to generate two different resolution video streams, which can meet the needs of different vision network terminals, and the vision network server does not need to perform transcoding during the video transmission process, thereby reducing the server pressure. On the other hand, for each first terminal, it can receive the video streams of the first resolution sent by other first terminals in the vision network, thereby making full use of the performance of the first terminal.
[0118] Such as Figure 5As shown in the figure, an embodiment of the present invention further provides another video transmission device, which is applied to a video networking terminal in a video network. Among them, the video network includes a video network server and multiple video networking terminals communicatively connected to the video network server. The device includes:
[0119] An instruction receiving module 501, configured to receive an encoding instruction sent by the video network server, where the encoding instruction includes a target resolution;
[0120] An encoding module 502, configured to, if the target resolution includes a first resolution and a second resolution, encode the collected original video stream according to the first resolution and the second resolution respectively to obtain a first video stream to be transmitted and a second video stream to be transmitted;
[0121] A second video stream sending module 503, configured to send the first video stream to be transmitted and the second video stream to be transmitted to the video network server, so that the video network server sends the first video stream to be transmitted to other video networking terminals with an output resolution of the first resolution, and sends the second video stream to be transmitted to a video networking terminal with an output resolution of the second resolution, where the first resolution is higher than the second resolution.
[0122] In one implementation, the encoding module 502 is further configured to, if the target resolution only includes the second resolution, encode the collected original video stream according to the second resolution to obtain a third video stream to be transmitted;
[0123] The second video stream sending module 503 is further configured to send the third video stream to be transmitted to the video network server, so that the video network server sends the third video stream to be transmitted to other video networking terminals.
[0124] In one implementation, the encoding module 502 is specifically configured to:
[0125] Obtain the original video stream collected by the video capture device;
[0126] Call a first thread to encode the original video stream according to the first resolution to obtain a first video stream to be transmitted, so that the video network server sends the first video stream to be transmitted to other video networking terminals with an output resolution of the first resolution based on the port number of the first thread;
[0127] Call a second thread to encode the original video stream according to the second resolution to obtain a second video stream to be transmitted, so that the video network server sends the second video stream to be transmitted to a video networking terminal with an output resolution of the second resolution based on the port number of the second thread.
[0128] As can be seen from the above, in the video transmission device provided by the embodiment of the present invention, the Visual Networking Terminal can perform encoding at two different resolutions according to the received encoding instruction, generate video streams of two different resolutions, which can meet the requirements of different Visual Networking Terminals. During the video transmission process, there is no need for the Visual Networking Server to perform transcoding, thereby reducing the server pressure. Moreover, the Visual Networking Terminal with a higher output resolution can receive high-resolution video streams, thus reducing performance waste.
[0129] For the device embodiment, since it is basically similar to the method embodiment, the description is relatively simple. For related parts, please refer to the partial description of the method embodiment.
[0130] Visual Networking is an important milestone in the development of the network. It is a real-time network that can achieve real-time transmission of high-definition video, pushing many Internet applications towards high-definition video and high-definition face-to-face.
[0131] Visual Networking adopts real-time high-definition video switching technology, which can integrate dozens of services such as high-definition video conferencing, video surveillance, intelligent surveillance analysis, emergency command, digital radio and television, delayed television, online teaching, live broadcast, VOD on demand, TV mail, personal recording (PVR), internal network (self-run) channels, intelligent video broadcast control, information release, etc. of video, voice, pictures, text, communication, data, etc. on a network platform, and realize high-definition quality video playback through a TV or computer.
[0132] To enable those skilled in the art to better understand the embodiments of the present invention, the following introduces Visual Networking:
[0133] Some of the technologies applied by Visual Networking are described as follows:
[0134] Network Technology
[0135] The network technology innovation of Visual Networking improves the traditional Ethernet to face the potential huge video traffic on the network. Different from pure network packet switching (Packet Switching) or network circuit switching (Circuit Switching), Visual Networking technology uses Packet Switching to meet the Streaming requirements. Visual Networking technology has the flexibility, simplicity and low cost of packet switching, and at the same time has the quality and security guarantee of circuit switching, realizing a full-network switched virtual circuit and seamless connection of data formats.
[0136] Switching Technology
[0137] The Visual Networking uses the asynchronous and packet-switching advantages of Ethernet, eliminates the defects of Ethernet on the premise of full compatibility, has seamless end-to-end connection across the network, directly reaches the user terminal, and directly bears IP data packets. User data does not require any format conversion within the entire network. The Visual Networking is a more advanced form of Ethernet and a real-time exchange platform, which can achieve large-scale high-definition video real-time transmission across the network that the current Internet cannot achieve, and push many network video applications towards high definition and unification.
[0138] Server Technology
[0139] The server technology on the Visual Networking and the Unified Video Platform is different from the traditional server. Its streaming media transmission is based on connection-oriented, and its data processing ability has nothing to do with traffic and communication time. A single network layer can contain both signaling and data transmission. For voice and video services, the complexity of streaming media processing on the Visual Networking and the Unified Video Platform is much simpler than data processing, and the efficiency is more than a hundred times higher than that of traditional servers.
[0140] Storage Technology
[0141] The ultra-high-speed storage technology of the Unified Video Platform adopts the most advanced real-time operating system to adapt to ultra-large-capacity and ultra-large-flow media content. It maps the program information in the server instructions to specific hard disk spaces. The media content no longer passes through the server and is directly sent to the user terminal instantly. The waiting time for users is generally less than 0.2 seconds. The optimized sector distribution greatly reduces the mechanical movement of the hard disk head seeking tracks. The resource consumption only accounts for 20% of the same-level IP Internet, but generates more than 3 times the concurrent traffic of traditional hard disk arrays, and the comprehensive efficiency is increased by more than 10 times.
[0142] Network Security Technology
[0143] The structural design of the Visual Networking completely eradicates the network security problems that plague the Internet from the structure through methods such as separate licensing for each service and complete isolation of devices and user data. Generally, there is no need for antivirus programs or firewalls, preventing hacker and virus attacks, and providing users with a structurally worry-free and secure network.
[0144] Service Innovation Technology
[0145] The unified video platform integrates services and transmission. Whether it is a single user, a private network user, or the totality of a network, it is just an automatic connection. The user terminal, set-top box, or PC is directly connected to the unified video platform to obtain rich and diverse multimedia video services in various forms. The unified video platform adopts a "recipe-style" configuration table mode to replace the traditional complex application programming, and can implement complex applications with very little code, achieving "unlimited" new business innovations.
[0146] The networking of the Visual Networking is described as follows:
[0147] The Visual Networking is a network structure with centralized control. This network can be of various types such as a tree network, a star network, a ring network, etc. However, on this basis, there needs to be a centralized control node in the network to control the entire network.
[0148] As Figure 6 shown, the Visual Networking is divided into two parts: the access network and the metropolitan area network.
[0149] The devices in the access network part can be mainly divided into three categories: node servers, access switches, and terminals (including various set-top boxes, encoding boards, memories, etc.). The node server is connected to the access switch, and the access switch can be connected to multiple terminals and can also be connected to the Ethernet.
[0150] Among them, the node server is the node that plays a centralized control function in the access network and can control the access switch and the terminal. The node server can be directly connected to the access switch or directly connected to the terminal.
[0151] Similarly, the devices in the metropolitan area network part can also be divided into three categories: metropolitan area servers, node switches, and node servers. The metropolitan area server is connected to the node switch, and the node switch can be connected to multiple node servers.
[0152] Among them, the node server is the node server in the access network part, that is, the node server belongs to both the access network part and the metropolitan area network part.
[0153] The metropolitan area server is the node that plays a centralized control function in the metropolitan area network and can control the node switch and the node server. The metropolitan area server can be directly connected to the node switch or directly connected to the node server.
[0154] Thus, it can be seen that the entire Visual Networking is a hierarchical centralized control network structure, and the networks controlled by the node server and the metropolitan area server can be of various structures such as tree, star, and ring.
[0155] Vividly speaking, the access network part can form a unified video platform (the part in the dotted circle), and multiple unified video platforms can form the Visual Networking; each unified video platform can be interconnected through the metropolitan area and wide area Visual Networking.
[0156] Video Internet of Things Device Classification
[0157] 1.1 The devices in the Video Internet of Things in the embodiments of the present invention can be mainly classified into three categories: servers, switches (including Ethernet gateways), and terminals (including various set-top boxes, encoding boards, memories, etc.). The Video Internet of Things can be divided into a metropolitan area network (or a national network, a global network, etc.) and an access network as a whole.
[0158] 1.2 Among them, the devices in the access network part can be mainly classified into three categories: node servers, access switches (including Ethernet gateways), and terminals (including various set-top boxes, encoding boards, memories, etc.).
[0159] The specific hardware structures of each access network device are as follows:
[0160] Node server:
[0161] As Figure 7 shown, it mainly includes a network interface module 701, a switching engine module 702, a CPU module 703, and a disk array module 704;
[0162] Among them, the packets coming in from the network interface module 701, the CPU module 703, and the disk array module 704 all enter the switching engine module 702; the switching engine module 702 operates on the incoming packets to look up the address table 705, so as to obtain the forwarding information of the packets; and according to the forwarding information of the packets, the packets are stored in the queue of the corresponding packet buffer 706; if the queue of the packet buffer 706 is almost full, they are discarded; the switching engine module 702 polls all the packet buffer queues and forwards if the following conditions are met: 1) the transmission buffer of the port is not full; 2) the packet counter of the queue is greater than zero. The disk array module 704 mainly realizes the control of the hard disk, including operations such as initialization and reading / writing of the hard disk; the CPU module 703 is mainly responsible for protocol processing between the access switch and the terminal (not shown in the figure), the configuration of the address table 705 (including the downlink protocol packet address table, the uplink protocol packet address table, and the data packet address table), and the configuration of the disk array module 704.
[0163] Access switch:
[0164] As Figure 8 shown, it mainly includes a network interface module (downlink network interface module 801, uplink network interface module 802), a switching engine module 803, and a CPU module 804;
[0165] Among them, the packets (uplink data) coming in from the downlink network interface module 801 enter the packet detection module 805; the packet detection module 805 detects whether the destination address (DA), source address (SA), packet type, and packet length of the packet meet the requirements. If they meet the requirements, a corresponding stream identifier (stream-id) is assigned, and the packet enters the switching engine module 803; otherwise, it is discarded. The packets (downlink data) coming in from the uplink network interface module 802 enter the switching engine module 803; the data packets coming in from the CPU module 804 enter the switching engine module 803; the switching engine module 803 operates on the incoming packets to look up the address table 806 to obtain the guiding information of the packets. If the packet entering the switching engine module 803 is from the downlink network interface to the uplink network interface, the packet is stored in the queue of the corresponding packet buffer 807 in combination with the stream identifier (stream-id). If the queue of the packet buffer 807 is almost full, it is discarded. If the packet entering the switching engine module 803 is not from the downlink network interface to the uplink network interface, the data packet is stored in the queue of the corresponding packet buffer 807 according to the guiding information of the packet. If the queue of the packet buffer 807 is almost full, it is discarded.
[0166] The switching engine module 803 polls all the packet buffer queues. In the embodiment of the present invention, there are two cases:
[0167] If the queue is from the downlink network interface to the uplink network interface, it is forwarded when the following conditions are met: 1) The transmit buffer of the port is not full; 2) The packet counter of the queue is greater than zero; 3) A token generated by the rate control module is obtained.
[0168] If the queue is not from the downlink network interface to the uplink network interface, it is forwarded when the following conditions are met: 1) The transmit buffer of the port is not full; 2) The packet counter of the queue is greater than zero.
[0169] The rate control module 708 is configured by the CPU module 704 to generate tokens for all the packet buffer queues from the downlink network interface to the uplink network interface at programmable intervals to control the uplink forwarding rate.
[0170] The CPU module 804 is mainly responsible for protocol processing with the node server, configuring the address table 806, and configuring the rate control module 808.
[0171] Ethernet protocol conversion gateway :
[0172] Such as Figure 9As shown in the figure, it mainly includes a network interface module (downlink network interface module 901, uplink network interface module 902), a switching engine module 903, a CPU module 904, a packet detection module 905, a bit rate control module 908, an address table 906, a packet buffer 907, a MAC addition module 909, and a MAC deletion module 910.
[0173] Among them, the data packets coming in from the downlink network interface module 901 enter the packet detection module 905; the packet detection module 905 detects whether the Ethernet MAC DA, Ethernet MAC SA, Ethernet length or frame type, Visual Networking destination address DA, Visual Networking source address SA, Visual Networking packet type, and packet length of the data packets meet the requirements. If they meet the requirements, corresponding stream identifiers (stream-id) are assigned; then, the MAC deletion module 910 subtracts the MAC DA, MAC SA, and length or frame type (2 bytes), and enters the corresponding receive buffer, otherwise it discards them.
[0174] The downlink network interface module 901 detects the transmit buffer of this port. If there are packets, it obtains the corresponding terminal's Ethernet MAC DA according to the Visual Networking destination address DA of the packets, adds the terminal's Ethernet MAC DA, the MAC SA of the Ethernet co-conversion gateway, and the Ethernet length or frame type, and sends them.
[0175] The functions of other modules in the Ethernet co-conversion gateway are similar to those of the access switch.
[0176] Terminal:
[0177] It mainly includes a network interface module, a service processing module, and a CPU module; for example, a set-top box mainly includes a network interface module, a video and audio codec engine module, and a CPU module; an encoding board mainly includes a network interface module, a video and audio encoding engine module, and a CPU module; a memory mainly includes a network interface module, a CPU module, and a disk array module.
[0178] 1.3 The devices in the metropolitan area network part can be mainly divided into 2 categories: node servers, node switches, and metropolitan area servers. Among them, the node switch mainly includes a network interface module, a switching engine module, and a CPU module; the metropolitan area server mainly consists of a network interface module, a switching engine module, and a CPU module.
[0179] 2. Visual Networking Packet Definition
[0180] 2.1 Access Network Packet Definition
[0181] The data packets of the access network mainly include the following parts: destination address (DA), source address (SA), reserved bytes, payload (PDU), and CRC.
[0182] As shown in the following table, the data packets of the access network mainly include the following parts:
[0183] DA SA Reserved Payload CRC
[0184] Among them:
[0185] The destination address (DA) consists of 8 bytes. The first byte represents the type of the data packet (such as various protocol packets, multicast data packets, unicast data packets, etc.), with up to 256 possibilities. The second byte to the sixth byte are the metropolitan area network address, and the seventh and eighth bytes are the access network address;
[0186] The source address (SA) also consists of 8 bytes, and the definition is the same as that of the destination address (DA);
[0187] The reserved bytes consist of 2 bytes;
[0188] The length of the payload part varies according to the type of different data packets. If it is various protocol packets, it is 64 bytes. If it is a single / multicast data packet, it is 32 + 1024 = 1056 bytes. Of course, it is not limited to the above two types;
[0189] CRC consists of 4 bytes, and its calculation method follows the standard Ethernet CRC algorithm.
[0190] 2.2 Definition of Metropolitan Area Network Data Packets
[0191] The topology of the metropolitan area network is a graph. There may be 2 or even more than 2 connections between two devices, that is, there may be more than 2 connections between a node switch and a node server, between a node switch and a node switch, and between a node switch and a node server. However, the metropolitan area network address of the metropolitan area network device is unique. In order to accurately describe the connection relationship between metropolitan area network devices, in the embodiments of the present invention, a parameter: label is introduced to uniquely describe a metropolitan area network device.
[0192] The definition of the labels in this specification is similar to that of the labels in MPLS (Multi-Protocol Label Switch). Suppose there are two connections between device A and device B. Then there are two labels for the data packet from device A to device B, and also two labels for the data packet from device B to device A. Labels are divided into incoming labels and outgoing labels. Suppose the label (incoming label) of the data packet entering device A is 0x0000, and the label (outgoing label) of this data packet when leaving device A may become 0x0001. The access process of the metropolitan area network is an access process under centralized control, which means that the address allocation and label allocation of the metropolitan area network are all dominated by the metropolitan area server, and the node switches and node servers are only passive executors. This is different from the label allocation in MPLS, where the label allocation in MPLS is the result of negotiation between switches and servers.
[0193] As shown in the following table, the data packets of the metropolitan area network mainly include the following parts:
[0194] DA SA Reserved Label Payload CRC
[0195] That is, the destination address (DA), source address (SA), reserved bytes (Reserved), label, payload (PDU), and CRC. Among them, the format of the label can refer to the following definition: The label is 32 bits, with the high 16 bits reserved and only the low 16 bits used. Its position is between the reserved bytes and the payload of the data packet.
[0196] Based on the above characteristics of the Visual Networking, one of the core concepts of the embodiments of the present invention is proposed. When the output resolutions of each Visual Networking terminal are different, the Visual Networking server sends a first encoding instruction to the first terminal with a higher output resolution, so that the first terminal encodes the first original video stream collected according to the first resolution and the second resolution respectively, obtaining a first video stream to be transmitted and a second video stream to be transmitted. Then, the first video stream to be transmitted is sent to other first terminals, and the second video stream to be transmitted is sent to the second terminal with a lower output resolution. In this way, on the one hand, the first terminal performs encoding at two different resolutions to generate two video streams with different resolutions, which can meet the needs of different Visual Networking terminals, and the Visual Networking server does not need to perform transcoding during the video transmission process, thus reducing the server pressure. On the other hand, for each first terminal, it can receive the video stream with the first resolution sent by other first terminals in the Visual Networking, so as to make full use of the performance of the first terminal.
[0197] Each embodiment in this specification is described in a progressive manner. Each embodiment focuses on the differences from other embodiments. The same or similar parts among the embodiments can be referred to each other.
[0198] Those skilled in the art should understand that the embodiments of the present invention can be provided as methods, apparatuses, or computer program products. Therefore, the embodiments of the present invention can take the form of all-hardware embodiments, all-software embodiments, or embodiments combining software and hardware aspects. Moreover, the embodiments of the present invention can take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk memories, CD-ROMs, optical memories, etc.) that contain computer-usable program code.
[0199] The embodiments of the present invention are described with reference to the flowcharts and / or block diagrams of methods, terminal devices (systems), and computer program products according to the embodiments of the present invention. It should be understood that each flow and / or block in the flowchart and / or block diagram, as well as the combination of flows and / or blocks in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to the processors of general-purpose computers, special-purpose computers, embedded processors, or other programmable data processing terminal devices to generate a machine, such that the instructions executed by the processors of the computer or other programmable data processing terminal devices generate means for implementing the functions specified in Figure 1 one flow or multiple flows and / or blocks Figure 1 one block or multiple blocks.
[0200] These computer program instructions can also be stored in a computer-readable memory that can direct a computer or other programmable data processing terminal device to work in a specific manner, such that the instructions stored in the computer-readable memory generate a manufactured article including instruction means that implement the functions specified in Figure 1 one flow or multiple flows and / or blocks Figure 1 one block or multiple blocks.
[0201] These computer program instructions can also be loaded onto a computer or other programmable data processing terminal device, such that a series of operation steps are executed on the computer or other programmable terminal device to generate a computer-implemented process, so that the instructions executed on the computer or other programmable terminal device provide steps for implementing the functions specified in Figure 1 one flow or multiple flows and / or blocks Figure 1 one block or multiple blocks.
[0202] Although the preferred embodiments of the embodiments of the present invention have been described, those skilled in the art can make additional changes and modifications to these embodiments once they know the basic creative concepts. Therefore, the appended claims are intended to be construed as including the preferred embodiments and all changes and modifications falling within the scope of the embodiments of the present invention.
[0203] Finally, it should also be noted that in this text, relational terms such as first and second are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any actual relationship or order between these entities or operations. Moreover, the term "comprising", "including" or any other variant thereof is intended to cover non-exclusive inclusion, such that a process, method, article or terminal device comprising a series of elements not only includes those elements but also includes other elements not expressly listed, or further includes elements inherent to such process, method, article or terminal device. Without further limitation, an element defined by the statement "comprising an..." does not exclude the presence of additional identical elements in the process, method, article or terminal device comprising the element.
[0204] The above has introduced in detail a video transmission method, apparatus and readable storage medium provided by the present invention. Specific examples are used in this text to elaborate on the principle and implementation manner of the present invention. The description of the above embodiments is only used to help understand the method and its core idea of the present invention; at the same time, for those of ordinary skill in the art, according to the idea of the present invention, there will be changes in the specific implementation manner and application scope. In summary, the content of this specification should not be construed as a limitation to the present invention.
Claims
1. A video transmission method, characterized in that, The method is applied to a Visual Networking server in a Visual Networking. The Visual Networking includes the Visual Networking server and multiple Visual Networking terminals communicatively connected to the Visual Networking server. The method includes: According to the output resolution of each of the Visual Networking terminals obtained in advance, the Visual Networking terminals are divided into first terminals and second terminals. The output resolution of the first terminals is a first resolution, and the output resolution of the second terminals is a second resolution. The first resolution is higher than the second resolution. The output resolution of a Visual Networking terminal is the highest resolution that the Visual Networking terminal can decode; Send a first encoding instruction to the first terminals. The first encoding instruction is used to instruct the first terminals to encode the first original video streams collected by the first terminals according to the first resolution and the second resolution respectively, to obtain a first video stream to be transmitted and a second video stream to be transmitted; Receive the first video stream to be transmitted and the second video stream to be transmitted sent by the first terminals; Send each of the first video streams to be transmitted to other first terminals except the first terminal that generates the first video stream to be transmitted, and send the second video stream to be transmitted to the second terminals; After receiving an opening instruction for a video conference, the Visual Networking server sends a resolution detection request to the Visual Networking terminals participating in the video conference, and divides the Visual Networking terminals participating in the video conference into first terminals and second terminals according to the output resolutions of the Visual Networking terminals fed back by the Visual Networking terminals; For the first video stream to be transmitted and the second video stream to be transmitted from the same first terminal, the Visual Networking server communicates with different Visual Networking terminals simultaneously based on the port numbers corresponding to the first video stream to be transmitted and the second video stream to be transmitted.
2. The method according to claim 1, wherein After dividing the Visual Networking terminals into first terminals and second terminals according to the output resolution of each of the Visual Networking terminals obtained in advance, the method further includes: Send a second encoding instruction to the second terminals. The second encoding instruction is used to instruct the second terminals to encode the second original video streams collected by the second terminals according to the second resolution, to obtain a third video stream to be transmitted; Receive the third video stream to be transmitted sent by the second terminals; Send each of the third video streams to be transmitted to the first terminals and other second terminals except the second terminal that generates the third video stream to be transmitted.
3. The method according to claim 1, characterized in that The Visual Networking further includes a scheduling device communicatively connected to the Visual Networking server. Before dividing the Visual Networking terminals into first terminals and second terminals according to the output resolution of each of the Visual Networking terminals obtained in advance, the method further includes: Receive the venue information sent by the scheduling device. The venue information includes the identity information of each Visual Networking terminal participating in the video conference; Dividing the Visual Networking terminals into first terminals and second terminals according to the output resolution of each of the Visual Networking terminals obtained in advance includes: After receiving the start instruction of the video conference sent by the scheduling device, according to the identity information, look up the output resolution of the Visual Networking Terminal participating in the video conference in the information database, where the information database includes the correspondence between the identity information of each Visual Networking Terminal and the output resolution; According to the output resolution of the Visual Networking Terminals participating in the video conference, divide the Visual Networking Terminals participating in the video conference into a first terminal and a second terminal.
4. A video transmission method, characterized in that, The method is applied to a Visual Networking Terminal in the Visual Network. The Visual Network includes a Visual Network Server and multiple Visual Networking Terminals communicatively connected to the Visual Network Server. The method includes: Receive an encoding instruction sent by the Visual Network Server, where the encoding instruction includes a target resolution; If the target resolution includes a first resolution and a second resolution, encode the collected original video stream according to the first resolution and the second resolution respectively to obtain a first video stream to be transmitted and a second video stream to be transmitted; Send the first video stream to be transmitted and the second video stream to be transmitted to the Visual Network Server, so that the Visual Network Server sends the first video stream to be transmitted to other Visual Networking Terminals with an output resolution of the first resolution, and sends the second video stream to be transmitted to Visual Networking Terminals with an output resolution of the second resolution. The first resolution is higher than the second resolution, and the output resolution of the Visual Networking Terminal is the highest resolution that the Visual Networking Terminal can decode; After receiving the start instruction of the video conference, the Visual Network Server sends a resolution detection request to the Visual Networking Terminals participating in the video conference, and divides the Visual Networking Terminals participating in the video conference into a first terminal and a second terminal according to the output resolution feedback by each Visual Networking Terminal; The Visual Network Server communicates with different Visual Networking Terminals simultaneously based on the port numbers corresponding to the first video stream to be transmitted and the second video stream to be transmitted from the same first terminal.
5. The method according to claim 4, characterized in that, If the target resolution only includes the second resolution, the method includes: Encode the collected original video stream according to the second resolution to obtain a third video stream to be transmitted; Send the third video stream to be transmitted to the Visual Network Server, so that the Visual Network Server sends the third video stream to be transmitted to other Visual Networking Terminals.
6. The method according to claim 4, wherein The encoding the collected original video stream according to the first resolution and the second resolution respectively to obtain a first video stream to be transmitted and a second video stream to be transmitted includes: Obtain the original video stream collected by the video capture device; Call a first thread to encode the original video stream according to the first resolution to obtain a first video stream to be transmitted, so that the Visual Network Server sends the first video stream to be transmitted to other Visual Networking Terminals with an output resolution of the first resolution based on the port number of the first thread; Invoke a second thread to encode the original video stream at the second resolution to obtain a second video stream to be transmitted, so that the Visual Networking server sends the second video stream to be transmitted to a Visual Networking terminal with an output resolution of the second resolution based on the port number of the second thread.
7. A video transmission device, characterized in that, The device is applied to a Visual Networking server in a Visual Networking. The Visual Networking includes the Visual Networking server and multiple Visual Networking terminals communicatively connected to the Visual Networking server. The device includes: A classification module, configured to classify the Visual Networking terminals into first terminals and second terminals according to the output resolutions of each of the Visual Networking terminals obtained in advance. The output resolution of the first terminals is a first resolution, and the output resolution of the second terminals is a second resolution. The first resolution is higher than the second resolution. The output resolution of a Visual Networking terminal is the highest resolution that the Visual Networking terminal can decode. After receiving an instruction to start a video conference, send a resolution detection request to the Visual Networking terminals participating in the video conference, and classify the Visual Networking terminals participating in the video conference into first terminals and second terminals according to the output resolutions of themselves fed back by each Visual Networking terminal; An instruction sending module, configured to send a first encoding instruction to the first terminals. The first encoding instruction is used to instruct the first terminals to encode the first original video streams collected by them at the first resolution and the second resolution respectively to obtain a first video stream to be transmitted and a second video stream to be transmitted; A video stream receiving module, configured to receive the first video stream to be transmitted and the second video stream to be transmitted sent by the first terminals; A first video stream sending module, configured to send each of the first video streams to be transmitted to other first terminals except the first terminal that generates the first video stream to be transmitted, and send the second video stream to be transmitted to the second terminals; for the first video stream to be transmitted and the second video stream to be transmitted from the same first terminal, communicate with different Visual Networking terminals simultaneously based on the port numbers corresponding to the first video stream to be transmitted and the second video stream to be transmitted.
8. A video transmission device, characterized in that, The device is applied to a Visual Networking terminal in a Visual Networking. The Visual Networking includes a Visual Networking server and multiple Visual Networking terminals communicatively connected to the Visual Networking server. The device includes: An instruction receiving module, configured to receive an encoding instruction sent by the Visual Networking server. The encoding instruction includes a target resolution; An encoding module, configured to, if the target resolution includes a first resolution and a second resolution, encode the collected original video stream at the first resolution and the second resolution respectively to obtain a first video stream to be transmitted and a second video stream to be transmitted; A second video stream sending module, configured to send the first video stream to be transmitted and the second video stream to be transmitted to the Visual Networking server, so that the Visual Networking server sends the first video stream to be transmitted to other Visual Networking terminals with an output resolution of the first resolution, and sends the second video stream to be transmitted to Visual Networking terminals with an output resolution of the second resolution, where the first resolution is higher than the second resolution, and the output resolution of a Visual Networking terminal is the highest resolution that the Visual Networking terminal can decode; after receiving an opening instruction for a video conference, the Visual Networking server sends a resolution detection request to the Visual Networking terminals participating in the video conference, and divides the Visual Networking terminals participating in the video conference into a first terminal and a second terminal according to the output resolutions of the respective Visual Networking terminals fed back; for the first video stream to be transmitted and the second video stream to be transmitted from the same first terminal, the Visual Networking server communicates with different Visual Networking terminals simultaneously based on the port numbers corresponding to the first video stream to be transmitted and the second video stream to be transmitted.
9. A video transmission device, characterized in that, Comprising: One or more processors; And One or more machine-readable media having instructions stored thereon, which when executed by the one or more processors cause the device to perform the video transmission method according to any one of claims 1 to 3 or 4 to 6.
10. A computer-readable storage medium, characterized in that, The computer program stored therein causes the processor to perform the video transmission method according to any one of claims 1 to 3 or 4 to 6.
Citation Information
Patent Citations
Video processing method and system for VoLTE video multi-party call
CN108076301A
Video transcoding method, transcoder, electronic equipment and storage medium
CN111107393A