首页 新闻 会员 周边

C#采用ffmpeg推流问题

0
悬赏园豆:20 [待解决问题]

由于业务需要,需要将BMP图片通过ffmpeg推流(rtsp),但是将其转成byte[]成功推流后,图片很模糊(比如:之前黑白相间得,拉流播放后只有黑色,白色融化了一样),求高手告知解决办法(采用ffmpeg的cmd命令)

搬砖的L先生的主页 搬砖的L先生 | 初学一级 | 园豆:2
提问于:2023-04-24 15:23
< >
分享
所有回答(2)
0

以下是文心一言生成的。有问题可以继续问

FFmpeg是一个开源的跨平台音频、视频处理工具,它可以使用多种编程语言进行编写,包括C、C++、Python等。

以下是使用FFmpeg推流(rtsp)的一般步骤:

安装FFmpeg:首先需要在计算机上安装FFmpeg,可以从FFmpeg的官方网站下载适用于不同操作系统的版本。

打开流:使用FFmpeg打开一个音频或视频流,可以使用以下命令:

css
ffmpeg -i input_file.mp4 -c:v libx264 -c:a aac -b:a 128k output_file.mp4
其中,input_file.mp4是输入的音频或视频文件,output_file.mp4是输出的音频或视频文件。-c:v libx264指定使用H.264编码器进行视频编码,-c:a aac指定使用AAC编码器进行音频编码,-b:a 128k指定编码器的输出缓冲区大小为128kB。

配置RTSP流:使用FFmpeg打开一个RTSP流,可以使用以下命令:

css
ffmpeg -rtsp_transport tcp -i input_file.mp4 -c:v libx264 -c:a aac -b:a 128k -f flv rtsp_stream.flv
其中,-rtsp_transport tcp指定使用TCP协议进行RTSP流传输,-i input_file.mp4指定输入的音频或视频文件为input_file.mp4,-c:v libx264指定使用H.264编码器进行视频编码,-c:a aac指定使用AAC编码器进行音频编码,-b:a 128k指定编码器的输出缓冲区大小为128kB,-f flv rtsp_stream.flv指定输出的文件格式为FLV,即Flash视频格式。

发布推流:最后,可以将推流的RTSP流发布到网络上,可以使用以下命令:

arduino
ffmpeg -re -i rtsp_stream.flv -c:v copy -c:a aac -b:a 128k -f flv rtsp_stream.flv
其中,-re表示重新编码,-c:v copy指定使用复制模式进行视频编码,-c:a aac指定使用AAC编码器进行音频编码,-b:a 128k指定编码器的输出缓冲区大小为128kB,-f flv rtsp_stream.flv指定输出的文件格式为FLV,即Flash视频格式。

需要注意的是,使用FFmpeg推流需要对音频或视频的编码格式和分辨率有一定的了解,并且需要安装相应的编码器和FFmpeg库文件。此外,推流时需要考虑网络带宽和延迟等因素,以确保推流效果符合要求。

国产小品牌 | 园豆:199 (初学一级) | 2023-04-24 17:31

你好 你说的这个和问题不挂钩啊,bmp图片转为byte[],用ffmpeg图片管道推流,导致画质变差,打个比方:键盘上的按钮字母是白色的,再次拉流播放后,只有黑色的,白色的不见啦

支持(0) 反对(0) 搬砖的L先生 | 园豆:2 (初学一级) | 2023-04-25 09:07

@搬砖的L先生: 换个编码器试试。

ffmpeg可以使用多种编码器来处理BMP文件,其中最常用的编码器是“libbmp”。

“libbmp”是一个开源的BMP文件格式支持库,它提供了一组API,可以在不同的操作系统和平台上读取、写入和处理BMP文件。ffmpeg中使用“libbmp”编码器的主要步骤如下:

在ffmpeg中添加“-i”参数,指定输入文件的路径和文件名。

在“-codec:v”参数中指定使用“libbmp”编码器。例如,使用libx264编码器处理视频时,可以使用以下命令:

css
ffmpeg -i input.bmp -codec:v libx264 output.mp4
如果需要对BMP文件进行其他处理,可以在“-filter”参数中指定过滤器。例如,可以使用“-vf”参数指定不同的过滤器,例如“-vf scale=640:-2”可以将视频大小缩小为原来的一半。

支持(0) 反对(0) 国产小品牌 | 园豆:199 (初学一级) | 2023-04-25 09:22

@国产小品牌:
这是本地打开(1)以及传输拉流播放后的视频(2),可以明显看到类似于字母的白色在拉流播放的视频中没有啦

支持(0) 反对(0) 搬砖的L先生 | 园豆:2 (初学一级) | 2023-04-25 09:27

@国产小品牌:
ffmpeg -re -i \.\pipe\pusher9 -codec:v libx264 -pix_fmt yuv420p -r 210 -s 648x480 -max_delay 10 -rtsp_transport tcp -f rtsp "rtsp://127.0.0.1:8554/live/9"
上面是用图片管道的命令

支持(0) 反对(0) 搬砖的L先生 | 园豆:2 (初学一级) | 2023-04-25 09:34

@搬砖的L先生:
是不是和色域编码信息有关系,看看能不能参考下

https://blog.csdn.net/qq_33899456/article/details/107870869

支持(0) 反对(0) 国产小品牌 | 园豆:199 (初学一级) | 2023-04-25 09:48

@国产小品牌: 不是,调试过还是不行,是否是BMP转byte[]过程中出了问题,但是用的转换方法应该是没错的

支持(0) 反对(0) 搬砖的L先生 | 园豆:2 (初学一级) | 2023-04-25 10:32
0

重新提问,解决

搬砖的L先生 | 园豆:2 (初学一级) | 2023-04-25 16:04
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册