JavaCV音频推流报错:org.bytedeco.javacv.FrameRecorder$Exception: No audio output stream (Is audioChannels > 0 and has start() been called?)

  执行推流时,给FFmpegFrameRecorder设置的参数如下(具体代码参见Java CV本地视频流通过帧图片添加文本进行字幕合成 ):  

        recorder.setAudioBitrate(grabber.getAudioBitrate());
        recorder.setSampleRate(grabber.getSampleRate());
        recorder.setAudioCodec(avcodec.AV_CODEC_ID_MP3);    

  结果调用FFmpegFrameRecorder的record方法时抛出异常,详见报错日志:

D:\Dev\Java\jdk1.8.0_102\bin\java.exe "-javaagent:D:\Dev\IntelliJ IDEA 2018.3.5\lib\idea_rt.jar=62038:D:\Dev\IntelliJ IDEA 2018.3.5\bin" -Dfile.encoding=UTF-8 -classpath D:\Dev\Java\jdk1.8.0_102\jre\lib\charsets.jar;D:\Dev\Java\jdk1.8.0_102\jre\lib\deploy.jar;D:\Dev\Java\jdk1.8.0_102\jre\lib\ext\access-bridge-64.jar;D:\Dev\Java\jdk1.8.0_102\jre\lib\ext\cldrdata.jar;D:\Dev\Java\jdk1.8.0_102\jre\lib\ext\dnsns.jar;D:\Dev\Java\jdk1.8.0_102\jre\lib\ext\jaccess.jar;D:\Dev\Java\jdk1.8.0_102\jre\lib\ext\jfxrt.jar;D:\Dev\Java\jdk1.8.0_102\jre\lib\ext\localedata.jar;D:\Dev\Java\jdk1.8.0_102\jre\lib\ext\nashorn.jar;D:\Dev\Java\jdk1.8.0_102\jre\lib\ext\sunec.jar;D:\Dev\Java\jdk1.8.0_102\jre\lib\ext\sunjce_provider.jar;D:\Dev\Java\jdk1.8.0_102\jre\lib\ext\sunmscapi.jar;D:\Dev\Java\jdk1.8.0_102\jre\lib\ext\sunpkcs11.jar;D:\Dev\Java\jdk1.8.0_102\jre\lib\ext\zipfs.jar;D:\Dev\Java\jdk1.8.0_102\jre\lib\javaws.jar;D:\Dev\Java\jdk1.8.0_102\jre\lib\jce.jar;D:\Dev\Java\jdk1.8.0_102\jre\lib\jfr.jar;D:\Dev\Java\jdk1.8.0_102\jre\lib\jfxswt.jar;D:\Dev\Java\jdk1.8.0_102\jre\lib\jsse.jar;D:\Dev\Java\jdk1.8.0_102\jre\lib\management-agent.jar;D:\Dev\Java\jdk1.8.0_102\jre\lib\plugin.jar;D:\Dev\Java\jdk1.8.0_102\jre\lib\resources.jar;D:\Dev\Java\jdk1.8.0_102\jre\lib\rt.jar;E:\workspace\subtitle-stub\target\classes;E:\Users\wulf\.m2\repository\com\alibaba\fastjson\1.2.21\fastjson-1.2.21.jar;E:\Users\wulf\.m2\repository\com\squareup\okhttp3\okhttp\4.2.2\okhttp-4.2.2.jar;E:\Users\wulf\.m2\repository\com\squareup\okio\okio\2.2.2\okio-2.2.2.jar;E:\Users\wulf\.m2\repository\org\jetbrains\kotlin\kotlin-stdlib\1.3.71\kotlin-stdlib-1.3.71.jar;E:\Users\wulf\.m2\repository\org\jetbrains\kotlin\kotlin-stdlib-common\1.3.71\kotlin-stdlib-common-1.3.71.jar;E:\Users\wulf\.m2\repository\org\jetbrains\annotations\13.0\annotations-13.0.jar;E:\Users\wulf\.m2\repository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar;E:\Users\wulf\.m2\repository\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar;E:\Users\wulf\.m2\repository\org\slf4j\slf4j-api\1.7.30\slf4j-api-1.7.30.jar;E:\Users\wulf\.m2\repository\org\projectlombok\lombok\1.18.8\lombok-1.18.8.jar;E:\Users\wulf\.m2\repository\org\springframework\boot\spring-boot-starter-web\2.2.6.RELEASE\spring-boot-starter-web-2.2.6.RELEASE.jar;E:\Users\wulf\.m2\repository\org\springframework\boot\spring-boot-starter\2.2.6.RELEASE\spring-boot-starter-2.2.6.RELEASE.jar;E:\Users\wulf\.m2\repository\org\springframework\boot\spring-boot\2.2.6.RELEASE\spring-boot-2.2.6.RELEASE.jar;E:\Users\wulf\.m2\repository\org\springframework\boot\spring-boot-autoconfigure\2.2.6.RELEASE\spring-boot-autoconfigure-2.2.6.RELEASE.jar;E:\Users\wulf\.m2\repository\org\springframework\boot\spring-boot-starter-logging\2.2.6.RELEASE\spring-boot-starter-logging-2.2.6.RELEASE.jar;E:\Users\wulf\.m2\repository\org\apache\logging\log4j\log4j-to-slf4j\2.12.1\log4j-to-slf4j-2.12.1.jar;E:\Users\wulf\.m2\repository\org\apache\logging\log4j\log4j-api\2.12.1\log4j-api-2.12.1.jar;E:\Users\wulf\.m2\repository\org\slf4j\jul-to-slf4j\1.7.30\jul-to-slf4j-1.7.30.jar;E:\Users\wulf\.m2\repository\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;E:\Users\wulf\.m2\repository\org\springframework\spring-core\5.2.5.RELEASE\spring-core-5.2.5.RELEASE.jar;E:\Users\wulf\.m2\repository\org\springframework\spring-jcl\5.2.5.RELEASE\spring-jcl-5.2.5.RELEASE.jar;E:\Users\wulf\.m2\repository\org\yaml\snakeyaml\1.25\snakeyaml-1.25.jar;E:\Users\wulf\.m2\repository\org\springframework\boot\spring-boot-starter-json\2.2.6.RELEASE\spring-boot-starter-json-2.2.6.RELEASE.jar;E:\Users\wulf\.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.10.3\jackson-databind-2.10.3.jar;E:\Users\wulf\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.10.3\jackson-annotations-2.10.3.jar;E:\Users\wulf\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.10.3\jackson-core-2.10.3.jar;E:\Users\wulf\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.10.3\jackson-datatype-jdk8-2.10.3.jar;E:\Users\wulf\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.10.3\jackson-datatype-jsr310-2.10.3.jar;E:\Users\wulf\.m2\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.10.3\jackson-module-parameter-names-2.10.3.jar;E:\Users\wulf\.m2\repository\org\springframework\boot\spring-boot-starter-tomcat\2.2.6.RELEASE\spring-boot-starter-tomcat-2.2.6.RELEASE.jar;E:\Users\wulf\.m2\repository\org\apache\tomcat\embed\tomcat-embed-core\9.0.33\tomcat-embed-core-9.0.33.jar;E:\Users\wulf\.m2\repository\org\apache\tomcat\embed\tomcat-embed-el\9.0.33\tomcat-embed-el-9.0.33.jar;E:\Users\wulf\.m2\repository\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.33\tomcat-embed-websocket-9.0.33.jar;E:\Users\wulf\.m2\repository\org\springframework\boot\spring-boot-starter-validation\2.2.6.RELEASE\spring-boot-starter-validation-2.2.6.RELEASE.jar;E:\Users\wulf\.m2\repository\jakarta\validation\jakarta.validation-api\2.0.2\jakarta.validation-api-2.0.2.jar;E:\Users\wulf\.m2\repository\org\hibernate\validator\hibernate-validator\6.0.18.Final\hibernate-validator-6.0.18.Final.jar;E:\Users\wulf\.m2\repository\org\jboss\logging\jboss-logging\3.4.1.Final\jboss-logging-3.4.1.Final.jar;E:\Users\wulf\.m2\repository\com\fasterxml\classmate\1.5.1\classmate-1.5.1.jar;E:\Users\wulf\.m2\repository\org\springframework\spring-web\5.2.5.RELEASE\spring-web-5.2.5.RELEASE.jar;E:\Users\wulf\.m2\repository\org\springframework\spring-beans\5.2.5.RELEASE\spring-beans-5.2.5.RELEASE.jar;E:\Users\wulf\.m2\repository\org\springframework\spring-webmvc\5.2.5.RELEASE\spring-webmvc-5.2.5.RELEASE.jar;E:\Users\wulf\.m2\repository\org\springframework\spring-aop\5.2.5.RELEASE\spring-aop-5.2.5.RELEASE.jar;E:\Users\wulf\.m2\repository\org\springframework\spring-context\5.2.5.RELEASE\spring-context-5.2.5.RELEASE.jar;E:\Users\wulf\.m2\repository\org\springframework\spring-expression\5.2.5.RELEASE\spring-expression-5.2.5.RELEASE.jar;E:\Users\wulf\.m2\repository\commons-codec\commons-codec\1.13\commons-codec-1.13.jar;E:\Users\wulf\.m2\repository\org\bytedeco\javacv-platform\1.5.2\javacv-platform-1.5.2.jar;E:\Users\wulf\.m2\repository\org\bytedeco\javacv\1.5.2\javacv-1.5.2.jar;E:\Users\wulf\.m2\repository\org\bytedeco\javacpp\1.5.2\javacpp-1.5.2.jar;E:\Users\wulf\.m2\repository\org\bytedeco\openblas\0.3.7-1.5.2\openblas-0.3.7-1.5.2.jar;E:\Users\wulf\.m2\repository\org\bytedeco\opencv\4.1.2-1.5.2\opencv-4.1.2-1.5.2.jar;E:\Users\wulf\.m2\repository\org\bytedeco\ffmpeg\4.2.1-1.5.2\ffmpeg-4.2.1-1.5.2.jar;E:\Users\wulf\.m2\repository\org\bytedeco\flycapture\2.13.3.31-1.5.2\flycapture-2.13.3.31-1.5.2.jar;E:\Users\wulf\.m2\repository\org\bytedeco\libdc1394\2.2.6-1.5.2\libdc1394-2.2.6-1.5.2.jar;E:\Users\wulf\.m2\repository\org\bytedeco\libfreenect\0.5.7-1.5.2\libfreenect-0.5.7-1.5.2.jar;E:\Users\wulf\.m2\repository\org\bytedeco\libfreenect2\0.2.0-1.5.2\libfreenect2-0.2.0-1.5.2.jar;E:\Users\wulf\.m2\repository\org\bytedeco\librealsense\1.12.4-1.5.2\librealsense-1.12.4-1.5.2.jar;E:\Users\wulf\.m2\repository\org\bytedeco\librealsense2\2.29.0-1.5.2\librealsense2-2.29.0-1.5.2.jar;E:\Users\wulf\.m2\repository\org\bytedeco\videoinput\0.200-1.5.2\videoinput-0.200-1.5.2.jar;E:\Users\wulf\.m2\repository\org\bytedeco\artoolkitplus\2.3.1-1.5.2\artoolkitplus-2.3.1-1.5.2.jar;E:\Users\wulf\.m2\repository\org\bytedeco\flandmark\1.07-1.5.2\flandmark-1.07-1.5.2.jar;E:\Users\wulf\.m2\repository\org\bytedeco\leptonica\1.78.0-1.5.2\leptonica-1.78.0-1.5.2.jar;E:\Users\wulf\.m2\repository\org\bytedeco\tesseract\4.1.0-1.5.2\tesseract-4.1.0-1.5.2.jar;E:\Users\wulf\.m2\repository\org\bytedeco\openblas-platform\0.3.7-1.5.2\openblas-platform-0.3.7-1.5.2.jar;E:\Users\wulf\.m2\repository\org\bytedeco\openblas\0.3.7-1.5.2\openblas-0.3.7-1.5.2-android-arm.jar;E:\Users\wulf\.m2\repository\org\bytedeco\openblas\0.3.7-1.5.2\openblas-0.3.7-1.5.2-android-arm64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\openblas\0.3.7-1.5.2\openblas-0.3.7-1.5.2-android-x86.jar;E:\Users\wulf\.m2\repository\org\bytedeco\openblas\0.3.7-1.5.2\openblas-0.3.7-1.5.2-android-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\openblas\0.3.7-1.5.2\openblas-0.3.7-1.5.2-ios-arm64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\openblas\0.3.7-1.5.2\openblas-0.3.7-1.5.2-ios-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\openblas\0.3.7-1.5.2\openblas-0.3.7-1.5.2-linux-x86.jar;E:\Users\wulf\.m2\repository\org\bytedeco\openblas\0.3.7-1.5.2\openblas-0.3.7-1.5.2-linux-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\openblas\0.3.7-1.5.2\openblas-0.3.7-1.5.2-linux-armhf.jar;E:\Users\wulf\.m2\repository\org\bytedeco\openblas\0.3.7-1.5.2\openblas-0.3.7-1.5.2-linux-arm64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\openblas\0.3.7-1.5.2\openblas-0.3.7-1.5.2-linux-ppc64le.jar;E:\Users\wulf\.m2\repository\org\bytedeco\openblas\0.3.7-1.5.2\openblas-0.3.7-1.5.2-macosx-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\openblas\0.3.7-1.5.2\openblas-0.3.7-1.5.2-windows-x86.jar;E:\Users\wulf\.m2\repository\org\bytedeco\openblas\0.3.7-1.5.2\openblas-0.3.7-1.5.2-windows-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\opencv-platform\4.1.2-1.5.2\opencv-platform-4.1.2-1.5.2.jar;E:\Users\wulf\.m2\repository\org\bytedeco\opencv\4.1.2-1.5.2\opencv-4.1.2-1.5.2-android-arm.jar;E:\Users\wulf\.m2\repository\org\bytedeco\opencv\4.1.2-1.5.2\opencv-4.1.2-1.5.2-android-arm64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\opencv\4.1.2-1.5.2\opencv-4.1.2-1.5.2-android-x86.jar;E:\Users\wulf\.m2\repository\org\bytedeco\opencv\4.1.2-1.5.2\opencv-4.1.2-1.5.2-android-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\opencv\4.1.2-1.5.2\opencv-4.1.2-1.5.2-ios-arm64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\opencv\4.1.2-1.5.2\opencv-4.1.2-1.5.2-ios-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\opencv\4.1.2-1.5.2\opencv-4.1.2-1.5.2-linux-x86.jar;E:\Users\wulf\.m2\repository\org\bytedeco\opencv\4.1.2-1.5.2\opencv-4.1.2-1.5.2-linux-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\opencv\4.1.2-1.5.2\opencv-4.1.2-1.5.2-linux-armhf.jar;E:\Users\wulf\.m2\repository\org\bytedeco\opencv\4.1.2-1.5.2\opencv-4.1.2-1.5.2-linux-arm64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\opencv\4.1.2-1.5.2\opencv-4.1.2-1.5.2-linux-ppc64le.jar;E:\Users\wulf\.m2\repository\org\bytedeco\opencv\4.1.2-1.5.2\opencv-4.1.2-1.5.2-macosx-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\opencv\4.1.2-1.5.2\opencv-4.1.2-1.5.2-windows-x86.jar;E:\Users\wulf\.m2\repository\org\bytedeco\opencv\4.1.2-1.5.2\opencv-4.1.2-1.5.2-windows-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\ffmpeg-platform\4.2.1-1.5.2\ffmpeg-platform-4.2.1-1.5.2.jar;E:\Users\wulf\.m2\repository\org\bytedeco\ffmpeg\4.2.1-1.5.2\ffmpeg-4.2.1-1.5.2-android-arm.jar;E:\Users\wulf\.m2\repository\org\bytedeco\ffmpeg\4.2.1-1.5.2\ffmpeg-4.2.1-1.5.2-android-arm64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\ffmpeg\4.2.1-1.5.2\ffmpeg-4.2.1-1.5.2-android-x86.jar;E:\Users\wulf\.m2\repository\org\bytedeco\ffmpeg\4.2.1-1.5.2\ffmpeg-4.2.1-1.5.2-android-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\ffmpeg\4.2.1-1.5.2\ffmpeg-4.2.1-1.5.2-linux-x86.jar;E:\Users\wulf\.m2\repository\org\bytedeco\ffmpeg\4.2.1-1.5.2\ffmpeg-4.2.1-1.5.2-linux-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\ffmpeg\4.2.1-1.5.2\ffmpeg-4.2.1-1.5.2-linux-armhf.jar;E:\Users\wulf\.m2\repository\org\bytedeco\ffmpeg\4.2.1-1.5.2\ffmpeg-4.2.1-1.5.2-linux-arm64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\ffmpeg\4.2.1-1.5.2\ffmpeg-4.2.1-1.5.2-linux-ppc64le.jar;E:\Users\wulf\.m2\repository\org\bytedeco\ffmpeg\4.2.1-1.5.2\ffmpeg-4.2.1-1.5.2-macosx-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\ffmpeg\4.2.1-1.5.2\ffmpeg-4.2.1-1.5.2-windows-x86.jar;E:\Users\wulf\.m2\repository\org\bytedeco\ffmpeg\4.2.1-1.5.2\ffmpeg-4.2.1-1.5.2-windows-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\flycapture-platform\2.13.3.31-1.5.2\flycapture-platform-2.13.3.31-1.5.2.jar;E:\Users\wulf\.m2\repository\org\bytedeco\flycapture\2.13.3.31-1.5.2\flycapture-2.13.3.31-1.5.2-linux-x86.jar;E:\Users\wulf\.m2\repository\org\bytedeco\flycapture\2.13.3.31-1.5.2\flycapture-2.13.3.31-1.5.2-linux-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\flycapture\2.13.3.31-1.5.2\flycapture-2.13.3.31-1.5.2-linux-armhf.jar;E:\Users\wulf\.m2\repository\org\bytedeco\flycapture\2.13.3.31-1.5.2\flycapture-2.13.3.31-1.5.2-linux-arm64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\flycapture\2.13.3.31-1.5.2\flycapture-2.13.3.31-1.5.2-windows-x86.jar;E:\Users\wulf\.m2\repository\org\bytedeco\flycapture\2.13.3.31-1.5.2\flycapture-2.13.3.31-1.5.2-windows-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\libdc1394-platform\2.2.6-1.5.2\libdc1394-platform-2.2.6-1.5.2.jar;E:\Users\wulf\.m2\repository\org\bytedeco\libdc1394\2.2.6-1.5.2\libdc1394-2.2.6-1.5.2-linux-x86.jar;E:\Users\wulf\.m2\repository\org\bytedeco\libdc1394\2.2.6-1.5.2\libdc1394-2.2.6-1.5.2-linux-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\libdc1394\2.2.6-1.5.2\libdc1394-2.2.6-1.5.2-linux-armhf.jar;E:\Users\wulf\.m2\repository\org\bytedeco\libdc1394\2.2.6-1.5.2\libdc1394-2.2.6-1.5.2-linux-arm64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\libdc1394\2.2.6-1.5.2\libdc1394-2.2.6-1.5.2-linux-ppc64le.jar;E:\Users\wulf\.m2\repository\org\bytedeco\libdc1394\2.2.6-1.5.2\libdc1394-2.2.6-1.5.2-macosx-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\libdc1394\2.2.6-1.5.2\libdc1394-2.2.6-1.5.2-windows-x86.jar;E:\Users\wulf\.m2\repository\org\bytedeco\libdc1394\2.2.6-1.5.2\libdc1394-2.2.6-1.5.2-windows-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\libfreenect-platform\0.5.7-1.5.2\libfreenect-platform-0.5.7-1.5.2.jar;E:\Users\wulf\.m2\repository\org\bytedeco\libfreenect\0.5.7-1.5.2\libfreenect-0.5.7-1.5.2-linux-x86.jar;E:\Users\wulf\.m2\repository\org\bytedeco\libfreenect\0.5.7-1.5.2\libfreenect-0.5.7-1.5.2-linux-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\libfreenect\0.5.7-1.5.2\libfreenect-0.5.7-1.5.2-linux-armhf.jar;E:\Users\wulf\.m2\repository\org\bytedeco\libfreenect\0.5.7-1.5.2\libfreenect-0.5.7-1.5.2-linux-arm64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\libfreenect\0.5.7-1.5.2\libfreenect-0.5.7-1.5.2-linux-ppc64le.jar;E:\Users\wulf\.m2\repository\org\bytedeco\libfreenect\0.5.7-1.5.2\libfreenect-0.5.7-1.5.2-macosx-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\libfreenect\0.5.7-1.5.2\libfreenect-0.5.7-1.5.2-windows-x86.jar;E:\Users\wulf\.m2\repository\org\bytedeco\libfreenect\0.5.7-1.5.2\libfreenect-0.5.7-1.5.2-windows-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\libfreenect2-platform\0.2.0-1.5.2\libfreenect2-platform-0.2.0-1.5.2.jar;E:\Users\wulf\.m2\repository\org\bytedeco\libfreenect2\0.2.0-1.5.2\libfreenect2-0.2.0-1.5.2-linux-x86.jar;E:\Users\wulf\.m2\repository\org\bytedeco\libfreenect2\0.2.0-1.5.2\libfreenect2-0.2.0-1.5.2-linux-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\libfreenect2\0.2.0-1.5.2\libfreenect2-0.2.0-1.5.2-macosx-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\libfreenect2\0.2.0-1.5.2\libfreenect2-0.2.0-1.5.2-windows-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\librealsense-platform\1.12.4-1.5.2\librealsense-platform-1.12.4-1.5.2.jar;E:\Users\wulf\.m2\repository\org\bytedeco\librealsense\1.12.4-1.5.2\librealsense-1.12.4-1.5.2-linux-x86.jar;E:\Users\wulf\.m2\repository\org\bytedeco\librealsense\1.12.4-1.5.2\librealsense-1.12.4-1.5.2-linux-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\librealsense\1.12.4-1.5.2\librealsense-1.12.4-1.5.2-macosx-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\librealsense\1.12.4-1.5.2\librealsense-1.12.4-1.5.2-windows-x86.jar;E:\Users\wulf\.m2\repository\org\bytedeco\librealsense\1.12.4-1.5.2\librealsense-1.12.4-1.5.2-windows-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\librealsense2-platform\2.29.0-1.5.2\librealsense2-platform-2.29.0-1.5.2.jar;E:\Users\wulf\.m2\repository\org\bytedeco\librealsense2\2.29.0-1.5.2\librealsense2-2.29.0-1.5.2-linux-x86.jar;E:\Users\wulf\.m2\repository\org\bytedeco\librealsense2\2.29.0-1.5.2\librealsense2-2.29.0-1.5.2-linux-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\librealsense2\2.29.0-1.5.2\librealsense2-2.29.0-1.5.2-macosx-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\librealsense2\2.29.0-1.5.2\librealsense2-2.29.0-1.5.2-windows-x86.jar;E:\Users\wulf\.m2\repository\org\bytedeco\librealsense2\2.29.0-1.5.2\librealsense2-2.29.0-1.5.2-windows-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\videoinput-platform\0.200-1.5.2\videoinput-platform-0.200-1.5.2.jar;E:\Users\wulf\.m2\repository\org\bytedeco\videoinput\0.200-1.5.2\videoinput-0.200-1.5.2-windows-x86.jar;E:\Users\wulf\.m2\repository\org\bytedeco\videoinput\0.200-1.5.2\videoinput-0.200-1.5.2-windows-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\artoolkitplus-platform\2.3.1-1.5.2\artoolkitplus-platform-2.3.1-1.5.2.jar;E:\Users\wulf\.m2\repository\org\bytedeco\artoolkitplus\2.3.1-1.5.2\artoolkitplus-2.3.1-1.5.2-android-arm.jar;E:\Users\wulf\.m2\repository\org\bytedeco\artoolkitplus\2.3.1-1.5.2\artoolkitplus-2.3.1-1.5.2-android-arm64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\artoolkitplus\2.3.1-1.5.2\artoolkitplus-2.3.1-1.5.2-android-x86.jar;E:\Users\wulf\.m2\repository\org\bytedeco\artoolkitplus\2.3.1-1.5.2\artoolkitplus-2.3.1-1.5.2-android-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\artoolkitplus\2.3.1-1.5.2\artoolkitplus-2.3.1-1.5.2-linux-x86.jar;E:\Users\wulf\.m2\repository\org\bytedeco\artoolkitplus\2.3.1-1.5.2\artoolkitplus-2.3.1-1.5.2-linux-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\artoolkitplus\2.3.1-1.5.2\artoolkitplus-2.3.1-1.5.2-linux-armhf.jar;E:\Users\wulf\.m2\repository\org\bytedeco\artoolkitplus\2.3.1-1.5.2\artoolkitplus-2.3.1-1.5.2-linux-arm64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\artoolkitplus\2.3.1-1.5.2\artoolkitplus-2.3.1-1.5.2-linux-ppc64le.jar;E:\Users\wulf\.m2\repository\org\bytedeco\artoolkitplus\2.3.1-1.5.2\artoolkitplus-2.3.1-1.5.2-macosx-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\artoolkitplus\2.3.1-1.5.2\artoolkitplus-2.3.1-1.5.2-windows-x86.jar;E:\Users\wulf\.m2\repository\org\bytedeco\artoolkitplus\2.3.1-1.5.2\artoolkitplus-2.3.1-1.5.2-windows-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\flandmark-platform\1.07-1.5.2\flandmark-platform-1.07-1.5.2.jar;E:\Users\wulf\.m2\repository\org\bytedeco\flandmark\1.07-1.5.2\flandmark-1.07-1.5.2-android-arm.jar;E:\Users\wulf\.m2\repository\org\bytedeco\flandmark\1.07-1.5.2\flandmark-1.07-1.5.2-android-arm64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\flandmark\1.07-1.5.2\flandmark-1.07-1.5.2-android-x86.jar;E:\Users\wulf\.m2\repository\org\bytedeco\flandmark\1.07-1.5.2\flandmark-1.07-1.5.2-android-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\flandmark\1.07-1.5.2\flandmark-1.07-1.5.2-linux-x86.jar;E:\Users\wulf\.m2\repository\org\bytedeco\flandmark\1.07-1.5.2\flandmark-1.07-1.5.2-linux-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\flandmark\1.07-1.5.2\flandmark-1.07-1.5.2-linux-armhf.jar;E:\Users\wulf\.m2\repository\org\bytedeco\flandmark\1.07-1.5.2\flandmark-1.07-1.5.2-linux-arm64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\flandmark\1.07-1.5.2\flandmark-1.07-1.5.2-linux-ppc64le.jar;E:\Users\wulf\.m2\repository\org\bytedeco\flandmark\1.07-1.5.2\flandmark-1.07-1.5.2-macosx-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\flandmark\1.07-1.5.2\flandmark-1.07-1.5.2-windows-x86.jar;E:\Users\wulf\.m2\repository\org\bytedeco\flandmark\1.07-1.5.2\flandmark-1.07-1.5.2-windows-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\leptonica-platform\1.78.0-1.5.2\leptonica-platform-1.78.0-1.5.2.jar;E:\Users\wulf\.m2\repository\org\bytedeco\leptonica\1.78.0-1.5.2\leptonica-1.78.0-1.5.2-android-arm.jar;E:\Users\wulf\.m2\repository\org\bytedeco\leptonica\1.78.0-1.5.2\leptonica-1.78.0-1.5.2-android-arm64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\leptonica\1.78.0-1.5.2\leptonica-1.78.0-1.5.2-android-x86.jar;E:\Users\wulf\.m2\repository\org\bytedeco\leptonica\1.78.0-1.5.2\leptonica-1.78.0-1.5.2-android-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\leptonica\1.78.0-1.5.2\leptonica-1.78.0-1.5.2-linux-x86.jar;E:\Users\wulf\.m2\repository\org\bytedeco\leptonica\1.78.0-1.5.2\leptonica-1.78.0-1.5.2-linux-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\leptonica\1.78.0-1.5.2\leptonica-1.78.0-1.5.2-linux-armhf.jar;E:\Users\wulf\.m2\repository\org\bytedeco\leptonica\1.78.0-1.5.2\leptonica-1.78.0-1.5.2-linux-arm64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\leptonica\1.78.0-1.5.2\leptonica-1.78.0-1.5.2-linux-ppc64le.jar;E:\Users\wulf\.m2\repository\org\bytedeco\leptonica\1.78.0-1.5.2\leptonica-1.78.0-1.5.2-macosx-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\leptonica\1.78.0-1.5.2\leptonica-1.78.0-1.5.2-windows-x86.jar;E:\Users\wulf\.m2\repository\org\bytedeco\leptonica\1.78.0-1.5.2\leptonica-1.78.0-1.5.2-windows-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\tesseract-platform\4.1.0-1.5.2\tesseract-platform-4.1.0-1.5.2.jar;E:\Users\wulf\.m2\repository\org\bytedeco\tesseract\4.1.0-1.5.2\tesseract-4.1.0-1.5.2-android-arm.jar;E:\Users\wulf\.m2\repository\org\bytedeco\tesseract\4.1.0-1.5.2\tesseract-4.1.0-1.5.2-android-arm64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\tesseract\4.1.0-1.5.2\tesseract-4.1.0-1.5.2-android-x86.jar;E:\Users\wulf\.m2\repository\org\bytedeco\tesseract\4.1.0-1.5.2\tesseract-4.1.0-1.5.2-android-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\tesseract\4.1.0-1.5.2\tesseract-4.1.0-1.5.2-linux-x86.jar;E:\Users\wulf\.m2\repository\org\bytedeco\tesseract\4.1.0-1.5.2\tesseract-4.1.0-1.5.2-linux-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\tesseract\4.1.0-1.5.2\tesseract-4.1.0-1.5.2-linux-armhf.jar;E:\Users\wulf\.m2\repository\org\bytedeco\tesseract\4.1.0-1.5.2\tesseract-4.1.0-1.5.2-linux-arm64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\tesseract\4.1.0-1.5.2\tesseract-4.1.0-1.5.2-linux-ppc64le.jar;E:\Users\wulf\.m2\repository\org\bytedeco\tesseract\4.1.0-1.5.2\tesseract-4.1.0-1.5.2-macosx-x86_64.jar;E:\Users\wulf\.m2\repository\org\bytedeco\tesseract\4.1.0-1.5.2\tesseract-4.1.0-1.5.2-windows-x86.jar;E:\Users\wulf\.m2\repository\org\bytedeco\tesseract\4.1.0-1.5.2\tesseract-4.1.0-1.5.2-windows-x86_64.jar com.lxy.service.SubtitleMix
准备开始推流...
Exception in thread "main" org.bytedeco.javacv.FrameRecorder$Exception: No audio output stream (Is audioChannels > 0 and has start() been called?)
    at org.bytedeco.javacv.FFmpegFrameRecorder.recordSamples(FFmpegFrameRecorder.java:1040)
    at org.bytedeco.javacv.FFmpegFrameRecorder.record(FFmpegFrameRecorder.java:922)
    at org.bytedeco.javacv.FFmpegFrameRecorder.record(FFmpegFrameRecorder.java:911)
    at com.lxy.service.SubtitleMix.main(SubtitleMix.java:77)
Input #0, matroska,webm, from 'E:\BaiduNetdiskDownload\testout.mkv':
  Metadata:
    title           : 天下足球网 http://www.txzqw.cc
    ENCODER         : Lavf58.39.101
  Duration: 00:01:11.11, start: 0.000000, bitrate: 2485 kb/s
    Stream #0:0: Video: h264 (High), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 1k tbn, 50 tbc (default)
    Metadata:
      ENCODER         : Lavc58.73.102 libx264
      DURATION        : 00:01:09.243000000
    Stream #0:1: Audio: vorbis, 48000 Hz, 5.1, fltp (default)
    Metadata:
      ENCODER         : Lavc58.73.102 libvorbis
      DURATION        : 00:01:09.331000000
    Stream #0:2: Subtitle: ass
    Metadata:
      ENCODER         : Lavc58.73.102 ssa
      DURATION        : 00:01:11.113000000
[libx264 @ 000000001cd89a80] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 000000001cd89a80] profile High, level 3.1, 4:2:0, 8-bit
[libx264 @ 000000001cd89a80] 264 - core 157 - H.264/MPEG-4 AVC codec - Copyleft 2003-2018 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'E:\BaiduNetdiskDownload\outtest.mp4':
  Metadata:
    encoder         : Lavf58.29.100
    Stream #0:0: Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 1280x720, q=2-31, 25 fps, 12800 tbn, 25 tbc

Process finished with exit code 1

  按上面日志异常堆栈去跟代码,最后定位这里:

    public boolean recordSamples(int sampleRate, int audioChannels, Buffer... samples) throws Exception {
        if (this.audio_st == null) {
            throw new Exception("No audio output stream (Is audioChannels > 0 and has start() been called?)");
        } else if (!this.started) {
            throw new Exception("start() was not called successfully!");
        }

  这里说audio_st是null,至于为什么是null,迷茫。Debug一看,音频的码率是0:

  注掉该码率设置,推流成功。

  另外如果创建推流对象时设置音频的声道为0,比如这样:

FFmpegFrameRecorder recorder = new FFmpegFrameRecorder("E:\\BaiduNetdiskDownload\\outtest.mp4",
                1280, 720);

  

  那么也会出现该异常。解决方式有两种,一种是补设一下声道:

recorder.setAudioChannels(1);

  另一种是实例化时就指定声道:

FFmpegFrameRecorder recorder = new FFmpegFrameRecorder("E:\\BaiduNetdiskDownload\\outtest.mp4",
                1280, 720, 2);

猜你喜欢

转载自www.cnblogs.com/wuxun1997/p/12936311.html