前言 前面我们搭建了FFmpeg的开发环境,进行了性能测试,这一篇我们就来演示一个实际的应用场景-网络流媒体播放器。
过程下载测试视频wget https://sample-videos.com/video123/mp4/720/big_buck_bunny_720p_10mb.mp4
开发板IP为192.168.137.2,PC端为192.168.137.1
PC端下载VLC安装https://www.videolan.org/
打开
弹出用户账户控制点击是
开发板中发送流./ffmpeg -re -i big_buck_bunny_720p_10mb.mp4 -an -vcodec copy -f rtp rtp://192.168.137.1:5004
打印如下
- root@ok3588:~# ./ffmpeg -re -i big_buck_bunny_720p_10mb.mp4 -an -vcodec copy -f rtp rtp://192.168.137.1:5004
- -bash: ./ffmpeg: No such file or directory
- root@ok3588:~# ffmpeg -re -i big_buck_bunny_720p_10mb.mp4 -an -vcodec copy -f rtp rtp://192.168.137.1:5004
- ffmpeg version N-109968-gcc76e8340d Copyright (c) 2000-2023 the FFmpeg developers
- built with gcc 9 (Ubuntu 9.3.0-10ubuntu2)
- configuration: --prefix=/root/opt/ffmpeg
- libavutil 58. 3.100 / 58. 3.100
- libavcodec 60. 6.100 / 60. 6.100
- libavformat 60. 4.100 / 60. 4.100
- libavdevice 60. 2.100 / 60. 2.100
- libavfilter 9. 4.100 / 9. 4.100
- libswscale 7. 2.100 / 7. 2.100
- libswresample 4. 11.100 / 4. 11.100
- Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'big_buck_bunny_720p_10mb.mp4':
- Metadata:
- major_brand : isom
- minor_version : 512
- compatible_brands: isomiso2avc1mp41
- creation_time : 1970-01-01T00:00:00.000000Z
- encoder : Lavf53.24.2
- Duration: 00:01:02.31, start: 0.000000, bitrate: 1347 kb/s
- Stream #0:0[0x1](und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], 959 kb/s, 25 fps, 25 tbr, 12800 tbn (default)
- Metadata:
- creation_time : 1970-01-01T00:00:00.000000Z
- handler_name : VideoHandler
- vendor_id : [0][0][0][0]
- Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 383 kb/s (default)
- Metadata:
- creation_time : 1970-01-01T00:00:00.000000Z
- handler_name : SoundHandler
- vendor_id : [0][0][0][0]
- Output #0, rtp, to 'rtp://192.168.137.1:5004':
- Metadata:
- major_brand : isom
- minor_version : 512
- compatible_brands: isomiso2avc1mp41
- encoder : Lavf60.4.100
- Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 959 kb/s, 25 fps, 25 tbr, 90k tbn (default)
- Metadata:
- creation_time : 1970-01-01T00:00:00.000000Z
- handler_name : VideoHandler
- vendor_id : [0][0][0][0]
- SDP:
- v=0
- o=- 0 0 IN IP4 127.0.0.1
- s=No Name
- c=IN IP4 192.168.137.1
- t=0 0
- a=tool:libavformat 60.4.100
- m=video 5004 RTP/AVP 96
- b=AS:959
- a=rtpmap:96 H264/90000
- a=fmtp:96 packetization-mode=1; sprop-parameter-sets=Z01AH9oBQBbsBEAAAAMAQAAADIPGDKg=,aO88gA==; profile-level-id=4D401F
-
- Stream mapping:
- Stream #0:0 -> #0:0 (copy)
- Press [q] to stop, [?] for help
- frame= 129 fps= 26 q=-1.0 size= 767kB time=00:00:05.12 bitrate=1227.5kbits/s speed=1.02x
复制如下部分内容
在PC端新建test.sdp文件,粘体上述内容
然后右键点击test.sdp,试用VLC打开
开发板上发送
./ffmpeg -re -i big_buck_bunny_720p_10mb.mp4 -an -vcodec copy -f rtp rtp://192.168.137.1:5004
可以看到开始播放视频,
25帧,900多kbits/s
总结得益于开发板强大的性能,运行了Ubuntu20系统,所以作为多媒体终端使用的话非常合适,比如以上基于FFmpeg演示了网络视频播放的功能,搭建非常简单,测试非常流畅,效果很好。
所以该开发板如果有类似应用场景的话拿来即可使用,是二次开发,产品开发的不错选择。