Unity 利用FFmpeg实现录屏、直播推流、音频视频格式转换、剪裁等功能

您所在的位置:网站首页 unity导出为视频 Unity 利用FFmpeg实现录屏、直播推流、音频视频格式转换、剪裁等功能

Unity 利用FFmpeg实现录屏、直播推流、音频视频格式转换、剪裁等功能

2024-03-27 23:40| 来源: 网络整理| 查看: 265

//推流命令 //-re -i C:\output.mp4 -vcodec libx264 -acodec copy -f flv -y rtmp://***/live/chid //拉流 //-i rtmp://127.0.0.1/live/chid -acodec copy -vcodec copy -f flv -y chid.mp4 //-i rtmp://127.0.0.1/live/chid -c copy dump.flv // rtsp 推流 // -i C:\output.mp4 -vcodec libx264 -f rtsp rtsp://***/myid //-f gdigrab -i desktop -vcodec libx264 -preset ultrafast -acodec libmp3lame -ar 44100 -ac 1 -f rtsp rtsp://***/myid //推 摄像头 //-f dshow -i video="HD Pro Webcam C920" -vcodec libx264 -acodec copy -preset:v ultrafast -tune:v zerolatency -f rtsp rtsp://***/myid //音视频录制 //-f dshow -video_size 1680x1050 -framerate 30 -pixel_format yuv420p -i audio="麦克风 (HD Pro Webcam C920)" av-out.mp4

//-f fmt 指定格式(音视频的格式) //dshow //-i 输入 //-vcodec 强制使用codec编解码方式('copy' to copy stream) //libx264 //-acodec 指定音频编码('copy' to copy stream) //copy //-preset //-tune //-y 覆盖已有文件 //-c //传输的图像为灰色的解决办法,添加:-pix_fmt yuv420p //录制桌面:desktop //录制窗口:title=窗口名 // av_interleaved_write_frame(): Broken pipe 问题:在-f rtsp后面加一个-rtsp_transport tcp //录制整个程序窗口 //string command = "-f gdigrab -i title=test -vcodec libx264 -preset ultrafast -pix_fmt yuv420p -acodec libmp3lame -ar 44100 -ac 1 -f rtsp -rtsp_transport tcp rtsp://***/myid"; //录制某一区域(这里是摄像头区域) //-offset_x 10 -offset_y 20 -video_size 640x480 从屏幕的(10,20)点处开始,抓取640x480的屏幕 //-s 640x480 指定分辨率 (640x480) //-r 60 设置帧率 (和程序的fps保持一致,解决Past duration 0.692253 too large的问题) //string command = "-f gdigrab -offset_x 920 -offset_y 85 -video_size 320*240 -s 320*240 -i title=test -vcodec libx264 -preset ultrafast -pix_fmt yuv420p -r 60 -acodec libmp3lame -ar 44100 -ac 1 -f rtsp -rtsp_transport tcp rtsp://***/myid"; //string command = "-f gdigrab -offset_x 920 -offset_y 85 -video_size 320*240 -s 320*240 -i title=test -f dshow -i audio=\""+ micName + "\" -vcodec libx264 -preset ultrafast -pix_fmt yuv420p -r 60 -acodec aac -ar 16000 -ac 1 -f rtsp -rtsp_transport tcp rtsp://***/myid"; //输入交换视频和音频的位置,画面不卡顿了 //string command = "-f dshow -i audio=\"" + micName + "\" -f gdigrab -offset_x 920 -offset_y 85 -video_size 320*240 -s 320*240 -i title=test -vcodec libx264 -preset ultrafast -pix_fmt yuv420p -f rtsp -rtsp_transport tcp "+ ClientController.rtspId; //FFmpegCommands.DirectInput(command); //-re(输入)主要用于模拟抓取设备或实时输入流(例如,从文件读取时)。不应与实际的抓取设备或实时输入流一起使用(它可能导致数据包丢失)。默认情况下,ffmpeg尝试尽快读取输入。此选项将减慢输入读取到输入的本机帧速率。它对于实时输出(例如直播)非常有用。 //string command = "-re -i \"" + path + "\" -vcodec libx264 -preset ultrafast -pix_fmt yuv420p -f rtsp -rtsp_transport tcp " +ClientController.rtspId;



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3