【问题标题】:FFMPEG SreenRecorder with Audio does not add DrawText带有音频的 FFMPEG SreenRecorder 不添加 DrawText
【发布时间】:2021-01-31 16:30:35
【问题描述】:

我正在使用 FFMPEG 使用 gdigrab 录制整个屏幕,以及录制麦克风音频和虚拟音频捕获器。花了很长时间,但我让它工作并保存为 mkv 文件。我正在使用 Vb.net 将字符串传递给 FFMPEG。这是字符串。

"/k ffmpeg.exe -y -rtbufsize 1500M -f dshow -i audio=@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{16F2BCE9-4F86-4C29-8B2C-B70508551DC7} -f dshow -i audio=@device_sw_{33D9A762-90C8-11D0-BD43-00A0C911CE86}{8E146464-DB61-4309-AFA1-3578E927E935} -f gdigrab -framerate 50 -i desktop -codec:v h264_nvenc -qp 0 -vf drawtext=fontfile =C:\Windows\ARLRDBD.TTF:Text=" & MyProgName & "fontcolor=white:fontsize=24:box=1:shadowcolor=darkblue:shadowx=1:shadowy=1:boxcolor=blue@0.6:boxborderw=5 :x=50:y=H-th-50:-filter_complex [0:a][1:a]amerge=inputs=2[a] -map 2 -map [a] " & str & "\Recordings\ScreenRecorder " & FileTime & ".mkv"

问题是它不会在屏幕上绘制文本,我收到以下错误。

    Guessed Channel Layout for Input Stream #0.0 : stereo
    Input #0, dshow, from 'audio=@device_cm_{33D9A762-90C8-11D0-BD43- 
    00A0C911CE86}\wave_{16F2BCE9-4F86-4C29-8B2C-B70508551DC7}':
    Duration: N/A, start: 840168.175000, bitrate: 1411 kb/s
    Stream #0:0: Audio: pcm_s16le, 44100 Hz, stereo, s16, 1411 kb/s
    Guessed Channel Layout for Input Stream #1.0 : stereo
    Input #1, dshow, from 'audio=@device_sw_{33D9A762-90C8-11D0-BD43- 
    00A0C911CE86}\{8E146464-DB61-4309-AFA1-3578E927E935}':
    Duration: N/A, start: 840168.949000, bitrate: 1536 kb/s
    Stream #1:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
    [gdigrab @ 000001b92bad9880] Capturing whole desktop as 
    1366x768x32 at (0,0)
    [gdigrab @ 000001b92bad9880] Stream #0: not enough frames to 
    estimate rate; consider increasing probesize
    Input #2, gdigrab, from 'desktop':
    Duration: N/A, start: 1602928621.299032, bitrate: 1678562 kb/s
    Stream #2:0: Video: bmp, bgra, 1366x768, 1678562 kb/s, 50 fps, 
    1000k tbr, 1000k tbn, 1000k tbc
    [NULL @ 000001b92badb300] Unable to find a suitable output format 
    for '[0:a][1:a]amerge=inputs=2[a]'
    [0:a][1:a]amerge=inputs=2[a]: Invalid argument
    Received stop event after 9 passes

如果有人能看出我哪里出错并指出我正确的方向,那将不胜感激。

【问题讨论】:

    标签: ffmpeg


    【解决方案1】:

    不要同时使用-vf-filter_complex。只需使用-filter_complex

    "/k ffmpeg.exe -y -rtbufsize 1500M -f dshow -i audio=@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{16F2BCE9-4F86-4C29-8B2C-B70508551DC7} -f dshow -i audio=@device_sw_{33D9A762-90C8-11D0-BD43-00A0C911CE86}{8E146464-DB61-4309-AFA1-3578E927E935} -f gdigrab -framerate 50 -i desktop -codec:v h264_nvenc -qp 0 -filter_complex drawtext=fontfile=C:\Windows\ARLRDBD.TTF:text=" & MyProgName & "fontcolor=white:fontsize=24:box=1:shadowcolor=darkblue:shadowx=1:shadowy=1:boxcolor=blue@0.6:boxborderw=5:x=50:y=H-th-50[v];[0:a][1:a]amerge=inputs=2[a] -map [v] -map [a] " & str & "\Recordings\ScreenRecorder" & FileTime & ".mkv"
    

    【讨论】:

    • 感谢您的回复 llogan,我现在收到此错误 Error initializing filter 'drawtext' with args 'fontfile=C:WindowsARLRDBD.TTF:Text=SnatchMediaPlayer:fontcolor=white:fontsize=24:box= 1:shadowcolor=darkblue:shadowx=1:shadowy=1:boxcolor=blue@0.6:boxborderw=5:x=50:y=H-th-50:'
    • 当我使用您的示例时,第一个错误是“找不到音频”设备。所以我解决了这个问题。然后是 Parsed_drawtext_0 @ 00000275c5ffa080] 未找到选项 'Text' [AVFilterGraph @ 00000275c5ffc3c0] 使用参数 'fontfile=C:WindowsARLRDBD.TTF:Text=SnatchMediaPlayerfontcolo 初始化过滤器'drawtext'时出错
    • 添加一些管道只是为了帮助整理代码/脚本后,出现此错误 Parsed_drawtext_0 @ 00000275c5ffa080] 找不到选项“文本”[AVFilterGraph @ 00000275c5ffc3c0] 使用 args 初始化过滤器“drawtext”时出错fontfile=C:WindowsARLRDBD.TTF:Text=SnatchMediaPlayerfontcolo 等我觉得我很接近,我在网上搜索过但根本没有看到任何类似的例子,使用全屏和音频。
    • @JohnHenderson 选项名称是 text,而不是 Text
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-04
    • 2011-11-17
    • 2016-04-11
    • 2018-10-28
    • 2012-05-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多