我正在使用最新版本的“ffmpeg-n6.1-60b9630-win64-nonfree”https://github.com/AnimMouse/ffmpeg-autobuild在 Windows 10.0.19045 上。我创建了一条命令行,用于从 decklink 卡捕获视频并将其流式传输到流服务。
C:\ffmpeg\ffmpeg.exe -format_code Hi59 -f decklink -channels 2 -i "DeckLink Duo (1)" -c:a aac -b:a 256k -c:v h264_nvenc -profile:v high -rc:v cbr_ld_hq -level:v 4.2 -r:v 30 -g:v 120 -bf:v 3 -b:v 5500000 -maxrate 6000000 -bufsize 9000000 -filter_complex "[0:v]split=2[out1][out2];[out2]scale=640:360[out_sdl]" -map "[out1]" -map 0:a -preset p6 -f flv rtmps://rtmp.boxcast.com/live/streamkey -map "[out_sdl]" -pix_fmt yuv420p -window_x 20 -window_y 30 -window_enable_quit 1 -f sdl "CRPC English"
该命令工作正常,并且会弹出一个窗口,仅显示我发送到流服务的视频,问题是,如果我移动桌面上的任何窗口,SDL 窗口就会冻结并变得无响应,编码和流会继续,但 SDL 窗口永远不会恢复。
我认为这是 ffmpeg 构建中使用的 Libsdl 中的一个错误,但我想在这里询问是否有人可以重现我的结果。
答案1
同样有此问题。如果您愿意,可以更换此部件
-pix_fmt yuv420p -window_x 20 -window_y 30 -window_enable_quit 1 -f sdl "CRPC English"
有这个
-f matroska - | ffplay - -vf scale=960:540 -left 20 -top 30