我有2个NamedPipeServerStreams。音频(立体声混音)1。我正在使用NAudio的WavIn和1的视频(屏幕捕获)。只需将BitBlt屏幕转换为字节数组即可。
我能够为rawvideo和更改代码创建mp4视频,为rawaudio创建单独的wav,但无法将两者合并/合并为mp4视频。
这些是我正在使用的ffmpeg命令。
要创建音频wav文件:
string args = @"-f s32le -channels 2 -sample_rate 44100 -i \\.\pipe\ffpipea -c copy output.wav";
音频播放非常快,但至少可以得到。
要创建视频mp4文件,请执行以下操作:
string inputArgs = @"-framerate 8 -f rawvideo -pix_fmt bgr24 -video_size 1920x1080 -i \\.\pipe\ffpipev";
string outputArgs = "-vcodec libx264 -crf 23 -pix_fmt yuv420p -preset ultrafast -r 8 output.mp4";
我尝试合并/合并两者:
string args = @"-framerate 8 -f rawvideo -pix_fmt bgr24 -video_size 1920x1080 -i \\.\pipe\ffpipev " +
@"-f s32le -channels 2 -sample_rate 44100 -i \\.\pipe\ffpipea " +
"-map 0:0 -map 1:0 -vcodec libx264 -crf 23 -pix_fmt yuv420p -preset ultrafast -r 8 -c:a copy output.mp4";
取决于我在args中所做的更改,WaitForConnection()永远不会触发,或者音频管道中断与pip中断。
请让我知道我是否可以提供更多信息。任何帮助表示赞赏。