飞凌嵌入式
直播中

jf_1137202360

8年用户 1362经验值
擅长:嵌入式技术
私信 关注
[技术]

【飞凌RK3588开发板试用】ffmpeg开发系列之二——网络视频播放器实现

Rec 0001


前言
  前面我们搭建了FFmpeg的开发环境,进行了性能测试,这一篇我们就来演示一个实际的应用场景-网络流媒体播放器。
过程下载测试视频
wget https://sample-videos.com/video123/mp4/720/big_buck_bunny_720p_10mb.mp4
按照前面我们搭建起了开发板PC端的网络通道,
开发板IP192.168.137.2,PC端为192.168.137.1
PC端下载VLC安装
https://www.videolan.org/
图片1.png
打开
弹出用户账户控制点击是
图片2.png
图片3.png
图片4.png
图片5.png
图片6.png
图片7.png
图片8.png
图片9.png
开发板中发送流
./ffmpeg -re -i big_buck_bunny_720p_10mb.mp4 -an -vcodec copy -f rtp rtp://192.168.137.1:5004
打印如下
  1. root@ok3588:~# ./ffmpeg -re -i big_buck_bunny_720p_10mb.mp4 -an -vcodec copy -f rtp rtp://192.168.137.1:5004

  2. -bash: ./ffmpeg: No such file or directory

  3. root@ok3588:~# ffmpeg -re -i big_buck_bunny_720p_10mb.mp4 -an -vcodec copy -f rtp rtp://192.168.137.1:5004  

  4. ffmpeg version N-109968-gcc76e8340d Copyright (c) 2000-2023 the FFmpeg developers

  5.   built with gcc 9 (Ubuntu 9.3.0-10ubuntu2)

  6.   configuration: --prefix=/root/opt/ffmpeg

  7.   libavutil      58.  3.100 / 58.  3.100

  8.   libavcodec     60.  6.100 / 60.  6.100

  9.   libavformat    60.  4.100 / 60.  4.100

  10.   libavdevice    60.  2.100 / 60.  2.100

  11.   libavfilter     9.  4.100 /  9.  4.100

  12.   libswscale      7.  2.100 /  7.  2.100

  13.   libswresample   4. 11.100 /  4. 11.100

  14. Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'big_buck_bunny_720p_10mb.mp4':

  15.   Metadata:

  16.     major_brand     : isom

  17.     minor_version   : 512

  18.     compatible_brands: isomiso2avc1mp41

  19.     creation_time   : 1970-01-01T00:00:00.000000Z

  20.     encoder         : Lavf53.24.2

  21.   Duration: 00:01:02.31, start: 0.000000, bitrate: 1347 kb/s

  22.   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)

  23.     Metadata:

  24.       creation_time   : 1970-01-01T00:00:00.000000Z

  25.       handler_name    : VideoHandler

  26.       vendor_id       : [0][0][0][0]

  27.   Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 383 kb/s (default)

  28.     Metadata:

  29.       creation_time   : 1970-01-01T00:00:00.000000Z

  30.       handler_name    : SoundHandler

  31.       vendor_id       : [0][0][0][0]

  32. Output #0, rtp, to 'rtp://192.168.137.1:5004':

  33.   Metadata:

  34.     major_brand     : isom

  35.     minor_version   : 512

  36.     compatible_brands: isomiso2avc1mp41

  37.     encoder         : Lavf60.4.100

  38.   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)

  39.     Metadata:

  40.       creation_time   : 1970-01-01T00:00:00.000000Z

  41.       handler_name    : VideoHandler

  42.       vendor_id       : [0][0][0][0]

  43. SDP:

  44. v=0

  45. o=- 0 0 IN IP4 127.0.0.1

  46. s=No Name

  47. c=IN IP4 192.168.137.1

  48. t=0 0

  49. a=tool:libavformat 60.4.100

  50. m=video 5004 RTP/AVP 96

  51. b=AS:959

  52. a=rtpmap:96 H264/90000

  53. a=fmtp:96 packetization-mode=1; sprop-parameter-sets=Z01AH9oBQBbsBEAAAAMAQAAADIPGDKg=,aO88gA==; profile-level-id=4D401F



  54. Stream mapping:

  55.   Stream #0:0 -> #0:0 (copy)

  56. Press [q] to stop, [?] for help

  57. frame=  129 fps= 26 q=-1.0 size=     767kB time=00:00:05.12 bitrate=1227.5kbits/s speed=1.02x   

复制如下部分内容
图片10.png
PC端新建test.sdp文件,粘体上述内容
图片11.png
然后右键点击test.sdp,试用VLC打开
图片12.png
开发板上发送
./ffmpeg -re -i big_buck_bunny_720p_10mb.mp4 -an -vcodec copy -f rtp rtp://192.168.137.1:5004
可以看到开始播放视频,
25,900kbits/s
图片13.png
总结
得益于开发板强大的性能,运行了Ubuntu20系统,所以作为多媒体终端使用的话非常合适,比如以上基于FFmpeg演示了网络视频播放的功能,搭建非常简单,测试非常流畅,效果很好。
所以该开发板如果有类似应用场景的话拿来即可使用,是二次开发,产品开发的不错选择。

更多回帖

发帖
×
20
完善资料,
赚取积分