03 2023 档案
摘要:2023-03-31:给定一个字符串 s,返回 s 中不同的非空 回文子序列 个数, 通过从 s 中删除 0 个或多个字符来获得子序列。 如果一个字符序列与它反转后的字符序列一致,那么它是 回文字符序列。 如果有某个 i , 满足 ai != bi ,则两个序列 a1, a2, … 和 b1, b2
阅读全文
摘要:2023-03-30:用Go语言改写FFmpeg示例decode_audio.c,实现高效音频解码。 答案2023-03-30: 这个程序的主要功能是将 MP2 音频文件解码为 PCM 格式,并输出到指定的输出文件中。下面是该程序的详细步骤: 1.导入所需的包 通过import语句导入了一些第三方库
阅读全文
摘要:2023-03-29:第一行有一个正整数n(3<=n<=100000),代表小A拟定的路线数量 第二行有n个正整数,第i个代表第i条路线的起始日期 第三行有n个正整数,第i个代表第i条路线的终止日期 输入保证起始日期小于终止日期 日期最小是1,最大不超过1000000000 小A打算选三个路线进行旅
阅读全文
2023-03-28:有一根长度为 n 个单位的木棍,棍上从 0 到 n 标记了若干位置。 给你一个整数数组 cuts ,其中 cuts[i] 表示你需要将棍子切开的位置, 你可以按顺序完成切割,也可
摘要:2023-03-28:有一根长度为 n 个单位的木棍,棍上从 0 到 n 标记了若干位置。 给你一个整数数组 cuts ,其中 cuts[i] 表示你需要将棍子切开的位置, 你可以按顺序完成切割,也可以根据需要更改切割的顺序, 每次切割的成本都是当前要切割的棍子的长度,切棍子的总成本是历次切割成本的
阅读全文
摘要:2023-03-27:avio_list_dir.c 是 FFmpeg 库自带的一个示例程序,它提供了列出目录中所有文件和子目录的功能,请用go语言改写。 答案2023-03-27: 这段代码实现了通过 AVIOContext 列出指定目录下的文件和子目录,并打印出它们的名称、大小、类型、权限等信息
阅读全文
2023-03-26:给定一个二维数组matrix, 每个格子都是正数,每个格子都和上、下、左、右相邻。 你可以从任何一个格子出发,走向相邻的格子, 把沿途的数字乘起来,希望得到的最终数字中,结尾的0
摘要:2023-03-26:给定一个二维数组matrix, 每个格子都是正数,每个格子都和上、下、左、右相邻。 你可以从任何一个格子出发,走向相邻的格子, 把沿途的数字乘起来,希望得到的最终数字中,结尾的0最多, 走的过程中,向左走或者向右走的拐点,最多只能有一次。 返回结尾最多的0,能是多少。 1 <=
阅读全文
2023-03-25:若两个正整数的和为素数,则这两个正整数称之为“素数伴侣“。 给定N(偶数)个正整数中挑选出若干对,组成“素数伴侣“, 例如有4个正整数:2,5,6,13, 如果将5和6分为一组的
摘要:2023-03-25:若两个正整数的和为素数,则这两个正整数称之为"素数伴侣"。 给定N(偶数)个正整数中挑选出若干对,组成"素数伴侣", 例如有4个正整数:2,5,6,13, 如果将5和6分为一组的话,只能得到一组"素数伴侣", 如果将2和5、6和13编组,将得到两组"素数伴侣", 这是得到"素数
阅读全文
摘要:2023-03-24:音视频mp3和h264混合(muxer)编码为mp4,用go语言编写。 答案2023-03-24: 这是一个使用FFmpeg库将MP3和H.264混合编码为MP4的Go语言程序。程序的大体过程如下: 1.设置FFmpeg库路径和环境变量。 2.检查并创建输出目录,以及输入视频和
阅读全文
摘要:2023-03-23:音视频解混合(demuxer)为PCM和YUV420P,用go语言编写。 答案2023-03-23: 大体步骤如下: 1.打开媒体文件,并获取音频和视频流。 2.对于每个流,找到对应的解码器、创建解码上下文并打开解码器。 3.一帧一帧读取压缩的音频或视频数据AVPacket,并
阅读全文
2023-03-22:给定一个字符串str, 如果删掉连续一段子串,剩下的字符串拼接起来是回文串, 那么该删除叫做有效的删除。 返回有多少种有效删除。 注意 : 不能全删除,删成空串不允许, 字符串长
摘要:2023-03-22:给定一个字符串str, 如果删掉连续一段子串,剩下的字符串拼接起来是回文串, 那么该删除叫做有效的删除。 返回有多少种有效删除。 注意 : 不能全删除,删成空串不允许, 字符串长度 <= 3000。 答案2023-03-22: 解法1:暴力枚举 算法思路 暴力枚举法即将所有可能
阅读全文
摘要:2023-03-21:音视频解混合(demuxer)为MP3和H264,用go语言编写。 答案2023-03-21: 步骤1:安装github.com/moonfdd/ffmpeg-go go get -u github.com/moonfdd/ffmpeg-go 步骤2:导入所需的库 接下来,我们
阅读全文
2023-03-20:给定一个无向图,保证所有节点连成一棵树,没有环, 给定一个正数n为节点数,所以节点编号为0~n-1,那么就一定有n-1条边, 每条边形式为{a, b, w},意思是a和b之间的无
摘要:2023-03-20:给定一个无向图,保证所有节点连成一棵树,没有环, 给定一个正数n为节点数,所以节点编号为0~n-1,那么就一定有n-1条边, 每条边形式为{a, b, w},意思是a和b之间的无向边,权值为w, 要求:给定一个正数k,表示在挑选之后,每个点相连的边,数量都不能超过k, 注意:是
阅读全文
摘要:2023-03-19:使用Go语言和FFmpeg库实现pcm编码为mp3。 答案2023-03-19: 本文将介绍如何使用Go语言和FFmpeg库实现PCM音频文件编码为MP3格式。我们将使用moonfdd/ffmpeg-go库,并在Windows 10 64位操作系统下完成本次实验。 代码参考了F
阅读全文
2023-03-18:给定一个长度n的数组,每次可以选择一个数x, 让这个数组中所有的x都变成x+1,问你最少的操作次数, 使得这个数组变成一个非降数组。 n <= 3 * 10^5, 0 <= 数值
摘要:2023-03-18:给定一个长度n的数组,每次可以选择一个数x, 让这个数组中所有的x都变成x+1,问你最少的操作次数, 使得这个数组变成一个非降数组。 n <= 3 * 10^5, 0 <= 数值 <= 10^9。 来自阿里。 答案2023-03-18: 解题思路 本题可以用多种算法来解决,下面
阅读全文
摘要:2023-03-17:使用Go语言和FFmpeg库实现音频重采样解码,并将其保存为PCM格式的文件。 答案2023-03-17: 在音视频处理领域,常常需要对音频进行重采样和解码,以便于后续的处理和分析。本文将介绍如何使用Go语言及FFmpeg库实现音频重采样解码为PCM数据的过程。 1.前置知识和
阅读全文
摘要:2023-03-16:给定一个由 0 和 1 组成的数组 arr ,将数组分成 3 个非空的部分, 使得所有这些部分表示相同的二进制值。 如果可以做到,请返回任何 [i, j],其中 i+1 < j,这样一来, arr[0], arr[1], …, arr[i] 为第一部分, arr[i + 1],
阅读全文
摘要:2023-03-15:屏幕录制并且显示视频,不要用命令。代码用go语言编写。 答案2023-03-15: 使用moonfdd/ffmpeg-go和moonfdd/sdl2-go库来实现屏幕录制并显示视频,大体流程如下: 1.使用libavdevice库中的AVInputFormat(输入格式)、AV
阅读全文
摘要:2023-03-14:读取摄像头,并且显示视频。代码用go语言编写。 答案2023-03-14: 大体流程如下: 导入所需的库和包。 初始化 ffmpeg 和 SDL2 库。 打开摄像头并创建 AVFormatContext 结构体。 查找视频流,并且打开视频解码器。 创建 SDL 窗口,用于显
阅读全文
摘要:2023-03-13:给定一个整数数组 A,坡是元组 (i, j),其中 i < j 且 A[i] <= A[j], 这样的坡的宽度为 j - i。 找出 A 中的坡的最大宽度,如果不存在,返回 0。 示例 1: 输入:[6,0,8,2,1,5] 输出:4 解释: 最大宽度的坡为 (i, j) =
阅读全文
摘要:2023-03-12:mp3音频解码为pcm,代码用go语言编写,调用moonfdd/ffmpeg-go库。 答案2023-03-12: 用github/moonfdd/ffmpeg-go库。 命令如下: go run ./examples/a15.audio_decode_mp32pcm/main
阅读全文
2023-03-11:给定一个N*M的二维矩阵,只由字符‘O‘、‘X‘、‘S‘、‘E‘组成, ‘O‘表示这个地方是可通行的平地, ‘X‘表示这个地方是不可通行的障碍, ‘S‘表示这个地方有一个士兵,全
摘要:2023-03-11:给定一个N*M的二维矩阵,只由字符’O’、‘X’、‘S’、'E’组成, 'O’表示这个地方是可通行的平地, 'X’表示这个地方是不可通行的障碍, 'S’表示这个地方有一个士兵,全图保证只有一个士兵, 'E’表示这个地方有一个敌人,全图保证只有一个敌人, 士兵可以在上、下、左、右
阅读全文
摘要:2023-03-10:YUV420P像素数据编码为JPEG图片,请用go语言实现。 答案2023-03-10: 方法一、使用 github.com/moonfdd/ffmpeg-go 库,基于雷霄骅的代码修改。 方法二、使用golang官方库image/jpeg,yuv420p先转换成rgb,再转换
阅读全文
摘要:2023-03-09:用golang调用ffmpeg,将流媒体数据(以RTMP为例)保存成本地文件(以flv为例)。 答案2023-03-09: 这是最简单的收流器。本文记录一个最简单的基于FFmpeg的收流器。收流器和推流器的作用正好相反:推流器用于将本地文件以流媒体的形式发送出去,而收流器用于将
阅读全文
摘要:2023-03-08:x265的视频编码器,不用ffmpeg,用libx265.dll也行。请用go语言调用libx265.dll,将yuv文件编码成h265文件。 答案2023-03-08: 使用 github.com/moonfdd/x265-go 库,代码写在了这个库里。 这个库根据头文件编写
阅读全文
摘要:2023-03-07:x264的视频编码器,不用ffmpeg,用libx264.dll也行。请用go语言调用libx264.dll,将yuv文件编码成h264文件。 答案2023-03-07: 使用 github.com/moonfdd/x264-go 库,代码写在了这个库里。 这个库根据头文件编写
阅读全文
2023-03-06:给定一个二维网格 grid ,其中: ‘.‘ 代表一个空房间 ‘#‘ 代表一堵 ‘@‘ 是起点 小写字母代表钥匙 大写字母代表锁 我们从起点开始出发,一次移动是指向四个基本方向之
摘要:2023-03-06:给定一个二维网格 grid ,其中: ‘.’ 代表一个空房间 ‘#’ 代表一堵 ‘@’ 是起点 小写字母代表钥匙 大写字母代表锁 我们从起点开始出发,一次移动是指向四个基本方向之一行走一个单位空间 我们不能在网格外面行走,也无法穿过一堵墙 如果途经一个钥匙,我们就把它捡起来。除
阅读全文
摘要:2023-03-05:ffmpeg推送本地视频至lal流媒体服务器(以RTMP为例),请用go语言编写。 答案2023-03-05: 使用 github.com/moonfdd/ffmpeg-go 库。 先启动lal流媒体服务器软件,然后再执行命令: go run ./examples/leixia
阅读全文
2023-03-04:定义一个二维数组N*M,比如5*5数组下所示: 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0,
摘要:2023-03-04:定义一个二维数组NM,比如55数组下所示: 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 它表示一个迷宫,其中的1表示墙壁,0表示可以走的路, 只能横着走或竖着走,不能斜着走
阅读全文
摘要:2023-03-03:请用go语言调用ffmpeg,摄像头捕获并编码为h264文件,不管音频。 答案2023-03-03: 使用 github.com/moonfdd/ffmpeg-go 库。 先用如下命令,获取摄像头的名称。此摄像头名称是"Full HD webcam",你们需要修改代码,把名称给
阅读全文
2023-03-02:给定一个数组arr,长度为n, 任意相邻的两个数里面至少要有一个被选出来,组成子序列,才是合法的! 求所有可能的合法子序列中,最大中位数是多少? 中位数的定义为上中位数, [1,
摘要:2023-03-02:给定一个数组arr,长度为n, 任意相邻的两个数里面至少要有一个被选出来,组成子序列,才是合法的! 求所有可能的合法子序列中,最大中位数是多少? 中位数的定义为上中位数, [1, 2, 3, 4]的上中位数是2, [1, 2, 3, 4, 5]的上中位数是3, 2 <= n <
阅读全文
摘要:2023-03-01:用moonfdd/ffmpeg-go库,将h264文件编码为mp4文件。 答案2023-03-01: 使用 github.com/moonfdd/ffmpeg-go 库。现在我们有h264的流,创建一个mp4文件,新建一条流并将h264流插入进去。(暂时没有音频部分)。 转换流
阅读全文
摘要:福哥答案2020-12-12: 现在的电脑一般是多核的,单个for循环cpu是不会打满的。 我的电脑是四核八线程的,不管是java还是go,6个for循环就能把cpu打满,4个和5个cpu打不满。 为什么是6个线程?现在还不得而知,请直接评论。 golang代码如下: package main im
阅读全文