本文是【黑马程序员JVM完整教程,全网超高评价,全程干货不拖沓-哔哩哔哩】教学视频学习所做的笔记
部分笔记内容拷贝自【JVM学习】
1 | $ vim /etc/systemd/system/myjar.service |
1 | # 查看IP信息 |
在Windows下Idea新建的Gradle纯Java项目,运行和编译时一些中文信息总是乱码;最近Android Studio升级Gradle为 6.0+ ,编译时也会出现中文乱码,如果apk名称带有中文,在AS中debug运行直接报错(The application could not be installed. Installation failed due to: 'Invalid File:
)
这里记录一下几种方法:
Help
—> Edit Custom VM Options
-> 输入:
1 | -Dfile.encoding=UTF-8 |
Calendar 有 after() 和 before() 两个函数比较日期的前后。
1 | Calendar now = Calendar.getInstance(); |
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/houxiaoni01/article/details/78832414
FLV(Flash Video)是Adobe公司设计开发的一种流行的流媒体格式,由于其视频文件体积轻巧、封装简单等特点,使其很适合在互联网上进行应用。此外,FLV可以使用Flash Player进行播放,而Flash Player插件已经安装在全世界绝大部分浏览器上,这使得通过网页播放FLV视频十分容易。目前主流的视频网站如优酷网,土豆网,乐视网等网站无一例外地使用了FLV格式。FLV封装格式的文件后缀通常为“.flv”。
总体上看,FLV包括文件头(File Header)和文件体(File Body)两部分,其中文件体由一系列的Tag组成。因此一个FLV文件是如图1-1结构。
头文件 | Tag#1 | Tag#2 | Tag#3 | … |
---|---|---|---|---|
图1-1 文件结构(简图)
其中,每个Tag前面还包含了Previous Tag Size字段,表示前面一个Tag的大小。Tag的类型可以是视频、音频和Script,每个Tag只能包含以上三种类型的数据中的一种。图1-2展示了FLV文件的详细结构。
【mp4parser】 这个库提供了用于读取、写入和创建MP4文件的Java API,包含三个组件:
我用了muxer,将H264文件和AAC文件合并为MP4文件。
1 | <!-- https://mvnrepository.com/artifact/org.mp4parser/muxer --> |
go get下载包失败在国内是常见的问题,下面是通过设置代理的解决方案
1 | $ go env -w GO111MODULE=on |
1 | $ vim /etc/profile (全部用户生效) |
这是rtmp-rtsp-stream-client-java发出的包
1 | 80600396000cf6ae0ce9d37f|我是分隔符|7c85b8141ff1c6921a6ba385c00040056dd92a7ccbeb7e38000837470001067fff1fc3177b46c9c731d84f1e6b6f6ff6fc763b09e21dfe9df6dbc8b84f176dbfe9db4d3b68efff8f1c444b8fca76b5da32e13cda7476ffff477fc47e3c53ebad78fc20f47edf6fe3ffa3fffff3ff043afe1edee6b04a600b730c899d05e4d4dffba8ba5f3adab44c59e08ded760e63763eda138901d3c527ffedff09e0854eb3b7ffe3bef09fd013dfb7ffe9be1d7a32430a449f19848276060df0f31fe941ff8a8976a7039b22b8d910300043c1c004254905641cf077c3c9ed77812f89043040be9a437b35b520bf448436f46f48c000401817b8f391571dc96f9f8515c3225034d14963b27feab77e6a3e8e7722e93bf6bda10b439fbee0f8afa2887e21c776f75fb8c50fff9f50caa27ddf2f17de9e690f29a9780eef43e6b031805184fce2e27feb480fb577381cace9e2bbaf378354bd524c3a3c45812dc55528ee47b8a78ab2f228bddf5372c7964bd0781f5cb673f2dbd45cfe8fc00e8675e64aaca76d34cdbaa6993c69c69c5df77bb0cf48a7ba41457cb8f6d42728128ecd69f2d1b7fdbffc89e3ebe78cbbe90bb557dc8fa006e3e8593fb7f5d3b65a8347e7ffd757e21558f4b17ac009c887912807061fdc1d87e56cfffcd951823d6e8d28060f7038a1605115c154bc0bcec0e77cfbc17ae34e6cf9b2b7641dd1f4e3e5dfff0f060a7bf595121372efffdbd2de14a9c908826749655109894930c25b0cb20fc30327a7ffc2b8973fff6e54b221f641354a50ffffe8e7485551a7fffca8c832481117a78fffdb6d05fd3edf171153a44cb24d580c9862259a3152f54e1565d4694eda2a32519e5ffbbfa88afe7cd956bd2f516f74fffa21042c4e12421c2112488a2a11b4da4055a564a7b022561f103175bd441f8f73fc3d4474f8e62d71bc4c1dc6c6cd295df1690870f73aa0efad48c09f7ec5203c0954554ba7f0a312006e3bd03fbacf6ff9518c1ed5bccb3c49106c150b6bc14c5216e9ab42bfb48cb8d958eb59641482a2946928541f04f49fd74e3b4ea8e67b78147940b2d3813f275f5744028cad6a0d27369bd6b8e6ddf4ae5ea34ac977795b69afa9888a2dc7c657b8428e7f510f971c3d035d0ee31ee67a6185555ceb6610c896d16c32cd8c857bedf56aaf58a49a1e68f28875bedf4bd083601f0ada56fffffe7d61d07fd650b7e045246963c6aa9d28ed1ccf9e37c584401664a2f8e92c711f055b7b52d9d89dc02f7e48280553ca1c2d52cf20159a824cb6fb7eb60971384a9ff7b954807714fcb880952c102ed4fd32af30ce6032668ad447dfae2425f10c04dfcfea34116c1565385b99728679581c8d23dbb18bdf90abeae6fbfa94ca18f486feb34d660bec5c5d76b54db986731a0857db65250c82d293b16060802c1c1037464d9b3709ecf5b770ca586800821738c93c4588a64b80d33292b3ec07c461c7e840bda57c18f4403615df6de9012a2b60b7e066105e60f30aee1506dbc2c4f2b8c89201b293a8fa61dd3d3804498c8c48643c80724573fb77238f65116824d336be409c8ec6a290344368394a6bd00a5872d4107ff54b09eb398c061f5e0c81283da0afdbf06686a383fab987254b835d095f2cabcbe0eaae9c4c03d7286ada203e607156d0d3a9b6f9f9a0034211effb7c0392a47214afbef9ffda37102e821292af133105d4c33b5ddbf0b1ba4e609422f878e94831e6f6909391292a41daafd076146581226a148afcfa1395062fa8 |
分隔符前面是 rtp header
后面是 rtp payload
也就是H264的NAL,这部分可能有三种情况:单NAL,聚合NAL,分包NAL
抓包文件在附件中…
tcp追踪流
1 | OPTIONS rtsp://192.168.0.223:554/test/ RTSP/1.0 |
Live555提供HTTP/RTSP协议的多媒体流服务器和RTSP流代理中转。
需要g++编译环境
1 | $ wget http://www.live555.com/liveMedia/public/live555-latest.tar.gz |
用UDP传输
1 | $ ffmpeg -re -i h264.mp4 -vcodec copy -f h264 udp://127.0.0.1:8554 |
在本地用ffplay播放(ffplay是ffmpeg的附带命令行工具)
1 | $ ffplay udp://127.0.0.1:8554 |
由于项目【ijkplayer】提供编译好的库没有支持RTSP,而ijkplayer这个项目比较强大之处就是可以根据需要进行裁剪编译,所以我要自己编译一次Android版本,开启RTSP协议。
编译所需软件大概有这些,引用参考文章的
1 | $ sudo apt install vim openssh-server git curl wget tar unzip |
CD/DVD
驱动器的类型:
CD/DVD
驱动器默认是IDE类型。CD/DVD
驱动器默认是SATA类型。 CD/DVD
驱动器底下有一个“高级”按钮,可以修改驱动器的类型。
升级到VM15后,在网上下载Windows7 、 XP的Chost镜像,一直提示“CDBOOT: Couldn’t find BOOTMER”,修改VMWare虚拟机的BIOS第一启动项为CD依然不行。
安装Linux系统(Ubuntu 20.04)却很顺利的。
查看下载的镜像文件,原来是没有boot.ini文件