QStringList 应该是个容器
QStringList qsl = QString("ffmpeg -i "rtsp://192.168.0.93:554/user=admin&password=&channel=0&stream=1.sdp?real_stream" -c copy -f rtsp -rtsp_transport udp rtsp://192.168.0.41:554/live/stream0").split(" ");
形参是QString,但中间间隔空格,以及有特殊字符" 比如命令行;先让一个std::stringstream来承接,然后转成std::string接着转成char*传给QString形参
#include <sstream>
std::string cmd_raw_str{R"(ffmpeg -i "rtsp://192.168.0.93:554/user=admin&password=&channel=0&stream=1.sdp?real_stream" -c copy -f rtsp -rtsp_transport udp rtsp://192.168.0.41:554/live/stream0)"};
std::stringstream cmd_ss;
cmd_ss << cmd_raw_str;
char* p_ch = cmd_ss.str().c_str();
推荐,将原始字符串转char*传入QString
std::string cmd_raw_str{R"(ffmpeg -i "rtsp://192.168.0.93:554/user=admin&password=&channel=0&stream=1.sdp?real_stream" -c copy -f rtsp -rtsp_transport udp rtsp://192.168.0.41:554/live/stream0)"};
char* p_ch = cmd_raw_str.c_str();