Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TCP negotiation failed #389

Open
josefhernandez opened this issue Mar 17, 2024 · 5 comments
Open

TCP negotiation failed #389

josefhernandez opened this issue Mar 17, 2024 · 5 comments

Comments

@josefhernandez
Copy link

I'm receiving raw audio and video from another process
I want to transcode to mpegts
My code is:

FFmpeg.atPath()
        .setLogLevel(LogLevel.INFO)
        .addInput(PipeInput.pumpFrom(readerVideo)
	        .addArguments("-f", "rawvideo")
	        .addArguments("-pixel_format", "uyvy422")
	        .addArguments("-video_size", "720x486")
	        .addArguments("-r", "30")							
	        )
        .addInput(PipeInput.pumpFrom(readerAudio)
	        .addArguments("-f", "s16le")
	        .addArguments("-ar", "48000")
	        .addArguments("-ac", "2")
	        )					
        .addArguments("-vf", "yadif")
        .setOverwriteOutput(true)
        .addOutput(UrlOutput.toPath(Path.of("c:/git/video.ts"))

And I write audio and video with

writerVideo.write(data);
writerAudio.write(data);

the program receives the first video frame ok, but when I try to write the first audio buffer I get this error

2024-03-17T18:50:13.751+01:00  WARN 20940 --- [           main] c.github.kokorin.jaffree.ffmpeg.FFmpeg   : ProgressListener isn't set, progress won't be reported
2024-03-17T18:50:13.752+01:00  INFO 20940 --- [eg-async-runner] c.g.k.jaffree.process.ProcessHandler     : Command constructed:
C:\git\ffmpeg-6.0-full_build\bin\ffmpeg -loglevel level+info -f rawvideo -pixel_format uyvy422 -video_size 720x486 -r 30 -i tcp://127.0.0.1:61238 -f s16le -ar 48000 -ac 2 -i tcp://127.0.0.1:61239 -y -vf yadif -pix_fmt yuv420p -c:v h264_nvenc -profile high -level 3.1 -r 30 -f mpegts c:\git\video.ts
2024-03-17T18:50:13.753+01:00  INFO 20940 --- [eg-async-runner] c.g.k.jaffree.process.ProcessHandler     : Starting process: C:\git\ffmpeg-6.0-full_build\bin\ffmpeg
2024-03-17T18:50:13.762+01:00  INFO 20940 --- [eg-async-runner] c.g.k.jaffree.process.ProcessHandler     : Waiting for process to finish
2024-03-17T18:50:13.789+01:00  INFO 20940 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [info] ffmpeg version 6.0-full_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developers
2024-03-17T18:50:13.790+01:00  INFO 20940 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [info]   built with gcc 12.2.0 (Rev10, Built by MSYS2 project)
2024-03-17T18:50:13.790+01:00  INFO 20940 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [info]   configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libvpl --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
2024-03-17T18:50:13.790+01:00  INFO 20940 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [info]   libavutil      58.  2.100 / 58.  2.100
2024-03-17T18:50:13.790+01:00  INFO 20940 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [info]   libavcodec     60.  3.100 / 60.  3.100
2024-03-17T18:50:13.790+01:00  INFO 20940 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [info]   libavformat    60.  3.100 / 60.  3.100
2024-03-17T18:50:13.791+01:00  INFO 20940 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [info]   libavdevice    60.  1.100 / 60.  1.100
2024-03-17T18:50:13.791+01:00  INFO 20940 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [info]   libavfilter     9.  3.100 /  9.  3.100
2024-03-17T18:50:13.791+01:00  INFO 20940 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [info]   libswscale      7.  1.100 /  7.  1.100
2024-03-17T18:50:13.791+01:00  INFO 20940 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [info]   libswresample   4. 10.100 /  4. 10.100
GetDeckLinkIterator 
2024-03-17T18:50:15.000+01:00  INFO 20940 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [info]   libpostproc    57.  1.100 / 57.  1.100
2024-03-17T18:50:15.000+01:00  INFO 20940 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [info] Input #0, rawvideo, from 'tcp://127.0.0.1:61238':
2024-03-17T18:50:15.000+01:00  INFO 20940 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [info]   Duration: N/A, start: 0.000000, bitrate: 167961 kb/s
2024-03-17T18:50:15.000+01:00  WARN 20940 --- [     Runnable-0] c.g.kokorin.jaffree.process.Executor     : Interrupting starter thread (FFmpeg-async-runner) because of exception: TCP negotiation failed
2024-03-17T18:50:15.000+01:00  WARN 20940 --- [eg-async-runner] c.g.k.jaffree.process.ProcessHandler     : Process has been interrupted
2024-03-17T18:50:15.001+01:00  INFO 20940 --- [       Thread-7] com.isthari.codec.app.ffmpeg.Encoder     : frame
2024-03-17T18:50:15.001+01:00  WARN 20940 --- [eg-async-runner] c.g.kokorin.jaffree.process.Executor     : Interrupting ALIVE thread: StdErr
2024-03-17T18:50:15.001+01:00  WARN 20940 --- [eg-async-runner] c.g.kokorin.jaffree.process.Executor     : Interrupting ALIVE thread: StdOut
2024-03-17T18:50:15.001+01:00  WARN 20940 --- [eg-async-runner] c.g.kokorin.jaffree.process.Executor     : Interrupting ALIVE thread: Runnable-1
2024-03-17T18:50:15.002+01:00  INFO 20940 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [info]   Stream #0:0: Video: rawvideo (UYVY / 0x59565955), uyvy422, 720x486, 167961 kb/s, 30 tbr, 30 tbn
@kokorin
Copy link
Owner

kokorin commented Mar 18, 2024

Could you configure more verbose logging? For that you have to set ffmpeg log level and SLF4j log level.
I think Jaffree should throw an exception in this situation, could you post an exception and its stacktrace?
Are you sure your Windows user has enough permissions to open TCP sockets?

@kokorin kokorin changed the title multiple inputs TCP negotiation failed Mar 18, 2024
@kokorin
Copy link
Owner

kokorin commented Mar 18, 2024

I have renamed the issue as it is not related to multiple inputs.

@josefhernandez
Copy link
Author

josefhernandez commented Mar 18, 2024

Could you configure more verbose logging? For that you have to set ffmpeg log level and SLF4j log level. Are you sure your Windows user has enough permissions to open TCP sockets?

It works with one stream but not with 2 streams.
My user is windows administrator.

Producer log


 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v3.2.3)

2024-03-18T12:26:18.236+01:00  INFO 27872 --- [           main] com.isthari.codec.app.VideoCodecApp      : Starting VideoCodecApp using Java 17.0.6 with PID 27872 (C:\git\isthari\broadcast\video-codec\video-codec\target\classes started by joseh in C:\git\isthari\broadcast\video-codec\video-codec)
2024-03-18T12:26:18.239+01:00  INFO 27872 --- [           main] com.isthari.codec.app.VideoCodecApp      : No active profile set, falling back to 1 default profile: "default"
2024-03-18T12:26:18.885+01:00  INFO 27872 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port 8080 (http)
2024-03-18T12:26:18.898+01:00  INFO 27872 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2024-03-18T12:26:18.898+01:00  INFO 27872 --- [           main] o.apache.catalina.core.StandardEngine    : Starting Servlet engine: [Apache Tomcat/10.1.19]
2024-03-18T12:26:18.946+01:00  INFO 27872 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2024-03-18T12:26:18.947+01:00  INFO 27872 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 678 ms
2024-03-18T12:26:19.022+01:00  WARN 27872 --- [           main] c.github.kokorin.jaffree.ffmpeg.FFmpeg   : ProgressListener isn't set, progress won't be reported
2024-03-18T12:26:19.024+01:00  INFO 27872 --- [eg-async-runner] c.g.k.jaffree.process.ProcessHandler     : Command constructed:
C:\git\ffmpeg-6.0-full_build\bin\ffmpeg -loglevel level+trace -f s16le -ar 48000 -ac 2 -i tcp://127.0.0.1:61283 -f rawvideo -pixel_format uyvy422 -video_size 720x486 -r 30 -i tcp://127.0.0.1:61284 -y -vf yadif -pix_fmt yuv420p -c:v h264_nvenc -c:a aac -profile:v high -level 3.1 -r 30 -preset ll -tune ull -f mpegts c:\git\video.ts
2024-03-18T12:26:19.027+01:00  INFO 27872 --- [eg-async-runner] c.g.k.jaffree.process.ProcessHandler     : Starting process: C:\git\ffmpeg-6.0-full_build\bin\ffmpeg
2024-03-18T12:26:19.036+01:00 DEBUG 27872 --- [eg-async-runner] c.g.k.jaffree.process.ProcessHandler     : Starting IO interaction with process
2024-03-18T12:26:19.038+01:00 DEBUG 27872 --- [         StdErr] c.g.kokorin.jaffree.process.Executor     : StdErr thread has started
2024-03-18T12:26:19.038+01:00 DEBUG 27872 --- [         StdOut] c.g.kokorin.jaffree.process.Executor     : StdOut thread has started
2024-03-18T12:26:19.039+01:00  INFO 27872 --- [eg-async-runner] c.g.k.jaffree.process.ProcessHandler     : Waiting for process to finish
2024-03-18T12:26:19.039+01:00 DEBUG 27872 --- [     Runnable-1] c.g.kokorin.jaffree.process.Executor     : Runnable-1 thread has started
2024-03-18T12:26:19.039+01:00 DEBUG 27872 --- [     Runnable-0] c.g.kokorin.jaffree.process.Executor     : Runnable-0 thread has started
2024-03-18T12:26:19.061+01:00  INFO 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [info] ffmpeg version 6.0-full_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developers
2024-03-18T12:26:19.061+01:00  INFO 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [info]   built with gcc 12.2.0 (Rev10, Built by MSYS2 project)
2024-03-18T12:26:19.062+01:00 DEBUG 27872 --- [     Runnable-0] c.github.kokorin.jaffree.net.TcpServer   : Connection accepted, serving: 127.0.0.1:61283
2024-03-18T12:26:19.062+01:00  INFO 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [info]   configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libvpl --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
2024-03-18T12:26:19.062+01:00  INFO 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [info]   libavutil      58.  2.100 / 58.  2.100
2024-03-18T12:26:19.062+01:00  INFO 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [info]   libavcodec     60.  3.100 / 60.  3.100
2024-03-18T12:26:19.062+01:00  INFO 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [info]   libavformat    60.  3.100 / 60.  3.100
2024-03-18T12:26:19.063+01:00  INFO 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [info]   libavdevice    60.  1.100 / 60.  1.100
2024-03-18T12:26:19.063+01:00  INFO 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [info]   libavfilter     9.  3.100 /  9.  3.100
2024-03-18T12:26:19.063+01:00  INFO 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [info]   libswscale      7.  1.100 /  7.  1.100
2024-03-18T12:26:19.063+01:00  INFO 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [info]   libswresample   4. 10.100 /  4. 10.100
2024-03-18T12:26:19.063+01:00  INFO 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [info]   libpostproc    57.  1.100 / 57.  1.100
2024-03-18T12:26:19.063+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [debug] Splitting the commandline.
2024-03-18T12:26:19.063+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [debug] Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument 'level+trace'.
2024-03-18T12:26:19.063+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [debug] Reading option '-f' ... matched as option 'f' (force format) with argument 's16le'.
2024-03-18T12:26:19.063+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [debug] Reading option '-ar' ... matched as option 'ar' (set audio sampling rate (in Hz)) with argument '48000'.
2024-03-18T12:26:19.064+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [debug] Reading option '-ac' ... matched as option 'ac' (set number of audio channels) with argument '2'.
2024-03-18T12:26:19.064+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [debug] Reading option '-i' ... matched as input url with argument 'tcp://127.0.0.1:61283'.
2024-03-18T12:26:19.064+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [debug] Reading option '-f' ... matched as option 'f' (force format) with argument 'rawvideo'.
2024-03-18T12:26:19.064+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [debug] Reading option '-pixel_format' ... matched as AVOption 'pixel_format' with argument 'uyvy422'.
2024-03-18T12:26:19.064+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [debug] Reading option '-video_size' ... matched as AVOption 'video_size' with argument '720x486'.
2024-03-18T12:26:19.064+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [debug] Reading option '-r' ... matched as option 'r' (set frame rate (Hz value, fraction or abbreviation)) with argument '30'.
2024-03-18T12:26:19.065+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [debug] Reading option '-i' ... matched as input url with argument 'tcp://127.0.0.1:61284'.
2024-03-18T12:26:19.065+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [debug] Reading option '-y' ... matched as option 'y' (overwrite output files) with argument '1'.
2024-03-18T12:26:19.065+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [debug] Reading option '-vf' ... matched as option 'vf' (set video filters) with argument 'yadif'.
2024-03-18T12:26:19.065+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [debug] Reading option '-pix_fmt' ... matched as option 'pix_fmt' (set pixel format) with argument 'yuv420p'.
2024-03-18T12:26:19.065+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [debug] Reading option '-c:v' ... matched as option 'c' (codec name) with argument 'h264_nvenc'.
2024-03-18T12:26:19.065+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [debug] Reading option '-c:a' ... matched as option 'c' (codec name) with argument 'aac'.
2024-03-18T12:26:19.065+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [debug] Reading option '-profile:v' ... matched as option 'profile' (set profile) with argument 'high'.
2024-03-18T12:26:19.065+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [debug] Reading option '-level' ... matched as AVOption 'level' with argument '3.1'.
2024-03-18T12:26:19.065+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [debug] Reading option '-r' ... matched as option 'r' (set frame rate (Hz value, fraction or abbreviation)) with argument '30'.
2024-03-18T12:26:19.066+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [debug] Reading option '-preset' ... matched as AVOption 'preset' with argument 'll'.
2024-03-18T12:26:19.066+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [debug] Reading option '-tune' ... matched as AVOption 'tune' with argument 'ull'.
2024-03-18T12:26:19.066+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [debug] Reading option '-f' ... matched as option 'f' (force format) with argument 'mpegts'.
2024-03-18T12:26:19.066+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [debug] Reading option 'c:\git\video.ts' ... matched as output url.
2024-03-18T12:26:19.066+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [debug] Finished splitting the commandline.
2024-03-18T12:26:19.066+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [debug] Parsing a group of options: global .
2024-03-18T12:26:19.066+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [debug] Applying option loglevel (set logging level) with argument level+trace.
2024-03-18T12:26:19.066+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [debug] Applying option y (overwrite output files) with argument 1.
2024-03-18T12:26:19.066+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [debug] Successfully parsed a group of options.
2024-03-18T12:26:19.066+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [debug] Parsing a group of options: input url tcp://127.0.0.1:61283.
2024-03-18T12:26:19.066+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [debug] Applying option f (force format) with argument s16le.
2024-03-18T12:26:19.066+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [debug] Applying option ar (set audio sampling rate (in Hz)) with argument 48000.
2024-03-18T12:26:19.066+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [debug] Applying option ac (set number of audio channels) with argument 2.
2024-03-18T12:26:19.066+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [debug] Successfully parsed a group of options.
2024-03-18T12:26:19.067+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [debug] Opening an input file: tcp://127.0.0.1:61283.
2024-03-18T12:26:19.067+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [s16le @ 000001d6d88d4600] [debug] Opening 'tcp://127.0.0.1:61283' for reading
2024-03-18T12:26:19.067+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [tcp @ 000001d6d88d5580] [debug] No default whitelist set
2024-03-18T12:26:19.067+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [tcp @ 000001d6d88d5580] [debug] Original list of addresses:
2024-03-18T12:26:19.067+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [tcp @ 000001d6d88d5580] [debug] Address 127.0.0.1 port 61283
2024-03-18T12:26:19.067+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [tcp @ 000001d6d88d5580] [debug] Interleaved list of addresses:
2024-03-18T12:26:19.067+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [tcp @ 000001d6d88d5580] [debug] Address 127.0.0.1 port 61283
2024-03-18T12:26:19.067+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [tcp @ 000001d6d88d5580] [verbose] Starting connection attempt to 127.0.0.1 port 61283
2024-03-18T12:26:19.223+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [tcp @ 000001d6d88d5580] [verbose] Successfully connected to 127.0.0.1 port 61283
2024-03-18T12:26:19.361+01:00  INFO 27872 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port 8080 (http) with context path ''
2024-03-18T12:26:19.375+01:00  INFO 27872 --- [           main] com.isthari.codec.app.VideoCodecApp      : Started VideoCodecApp in 1.504 seconds (process running for 3.44)
2024-03-18T12:26:20.223+01:00 DEBUG 27872 --- [     Runnable-0] c.g.kokorin.jaffree.process.Executor     : Exception in thread Runnable-0, collecting for later report. Message: TCP negotiation failed
2024-03-18T12:26:20.223+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [s16le @ 000001d6d88d4600] [debug] Before avformat_find_stream_info() pos: 0 bytes read:1024 seeks:0 nb_streams:1
2024-03-18T12:26:20.224+01:00  WARN 27872 --- [     Runnable-0] c.g.kokorin.jaffree.process.Executor     : Interrupting starter thread (FFmpeg-async-runner) because of exception: TCP negotiation failed
2024-03-18T12:26:20.224+01:00 TRACE 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [s16le @ 000001d6d88d4600] [trace] stream 0: start_time: NOPTS duration: NOPTS
2024-03-18T12:26:20.224+01:00 DEBUG 27872 --- [     Runnable-0] c.g.kokorin.jaffree.process.Executor     : Runnable-0 thread has finished
2024-03-18T12:26:20.224+01:00  WARN 27872 --- [eg-async-runner] c.g.k.jaffree.process.ProcessHandler     : Process has been interrupted
2024-03-18T12:26:20.224+01:00 DEBUG 27872 --- [eg-async-runner] c.g.k.jaffree.ffmpeg.FFmpegStopper       : Stopping ffmpeg by sending "qq" to StdIn
2024-03-18T12:26:20.224+01:00 DEBUG 27872 --- [     Runnable-1] c.github.kokorin.jaffree.net.TcpServer   : Connection accepted, serving: 127.0.0.1:61284
2024-03-18T12:26:20.224+01:00 TRACE 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [s16le @ 000001d6d88d4600] [trace] format: start_time: NOPTS duration: NOPTS (estimate from bit rate) bitrate=1536 kb/s
2024-03-18T12:26:20.224+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [s16le @ 000001d6d88d4600] [debug] After avformat_find_stream_info() pos: 6408 bytes read:6408 seeks:0 frames:2
2024-03-18T12:26:20.224+01:00  WARN 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [warning] Guessed Channel Layout for Input Stream #0.0 : stereo
2024-03-18T12:26:20.224+01:00  INFO 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [info] Input #0, s16le, from 'tcp://127.0.0.1:61283':
2024-03-18T12:26:20.224+01:00  INFO 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [info]   Duration: N/A, bitrate: 1536 kb/s
2024-03-18T12:26:20.224+01:00  INFO 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [info]   Stream #0:0, 2, 1/48000: Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s
2024-03-18T12:26:20.224+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [debug] Successfully opened the file.
2024-03-18T12:26:20.224+01:00 DEBUG 27872 --- [eg-async-runner] c.g.kokorin.jaffree.process.Executor     : Stopping execution
2024-03-18T12:26:20.224+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [debug] Parsing a group of options: input url tcp://127.0.0.1:61284.
2024-03-18T12:26:20.224+01:00  WARN 27872 --- [eg-async-runner] c.g.kokorin.jaffree.process.Executor     : Interrupting ALIVE thread: StdErr
2024-03-18T12:26:20.224+01:00  WARN 27872 --- [eg-async-runner] c.g.kokorin.jaffree.process.Executor     : Interrupting ALIVE thread: StdOut
2024-03-18T12:26:20.224+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [debug] Applying option f (force format) with argument rawvideo.
2024-03-18T12:26:20.224+01:00  WARN 27872 --- [eg-async-runner] c.g.kokorin.jaffree.process.Executor     : Interrupting ALIVE thread: Runnable-1
2024-03-18T12:26:20.224+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [debug] Applying option r (set frame rate (Hz value, fraction or abbreviation)) with argument 30.
2024-03-18T12:26:20.225+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [debug] Successfully parsed a group of options.
2024-03-18T12:26:20.225+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [debug] Opening an input file: tcp://127.0.0.1:61284.
2024-03-18T12:26:20.225+01:00 DEBUG 27872 --- [     Runnable-1] c.g.kokorin.jaffree.process.Executor     : Exception in thread Runnable-1, collecting for later report. Message: TCP negotiation failed
2024-03-18T12:26:20.225+01:00 DEBUG 27872 --- [     Runnable-1] c.g.kokorin.jaffree.process.Executor     : Runnable-1 thread has finished
2024-03-18T12:26:20.225+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [rawvideo @ 000001d6d88ead80] [debug] Opening 'tcp://127.0.0.1:61284' for reading
2024-03-18T12:26:20.225+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [tcp @ 000001d6d88ec300] [debug] No default whitelist set
2024-03-18T12:26:20.225+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [tcp @ 000001d6d88ec300] [debug] Original list of addresses:
2024-03-18T12:26:20.225+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [tcp @ 000001d6d88ec300] [debug] Address 127.0.0.1 port 61284
2024-03-18T12:26:20.225+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [tcp @ 000001d6d88ec300] [debug] Interleaved list of addresses:
2024-03-18T12:26:20.225+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [tcp @ 000001d6d88ec300] [debug] Address 127.0.0.1 port 61284
2024-03-18T12:26:20.226+01:00 DEBUG 27872 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [tcp @ 000001d6d88ec300] [verbose] Starting connection attempt to 127.0.0.1 port 61284
2024-03-18T12:26:20.226+01:00 DEBUG 27872 --- [         StdOut] c.g.kokorin.jaffree.process.Executor     : StdOut thread has finished
2024-03-18T12:26:20.226+01:00 DEBUG 27872 --- [         StdErr] c.g.kokorin.jaffree.process.Executor     : StdErr thread has finished
2024-03-18T12:26:21.225+01:00 ERROR 27872 --- [       Thread-5] com.isthari.codec.app.ffmpeg.Encoder     : 

java.io.IOException: Read end dead
	at java.base/java.io.PipedInputStream.checkStateForReceive(PipedInputStream.java:262) ~[na:na]
	at java.base/java.io.PipedInputStream.awaitSpace(PipedInputStream.java:268) ~[na:na]
	at java.base/java.io.PipedInputStream.receive(PipedInputStream.java:231) ~[na:na]
	at java.base/java.io.PipedOutputStream.write(PipedOutputStream.java:150) ~[na:na]
	at java.base/java.io.OutputStream.write(OutputStream.java:127) ~[na:na]
	at com.isthari.codec.app.ffmpeg.Encoder.encodeUyvy(Encoder.java:96) ~[classes/:na]
	at com.isthari.codec.app.Tester$2.onVideoFrame(Tester.java:50) ~[classes/:na]
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
	at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]
	at com.sun.jna.CallbackReference$DefaultCallbackProxy.invokeCallback(CallbackReference.java:579) ~[jna-5.7.0.jar:5.7.0 (b0)]
	at com.sun.jna.CallbackReference$DefaultCallbackProxy.callback(CallbackReference.java:610) ~[jna-5.7.0.jar:5.7.0 (b0)]

@kokorin
Copy link
Owner

kokorin commented Apr 9, 2024

Sorry for the very late reply, I somehow missed notifications.

The logs you provided look like from 2 or more Jaffree instances running simultaneously.
If that is so, use FFmpeg. setContextName(final String contextName) method to add context name to logs.

Also I did notice only one ffmpeg command, please describe your use case with more details.

@kokorin
Copy link
Owner

kokorin commented Apr 10, 2024

I have checked the logs, I see you read from 2 different sources.

Try to make sure that audio and video streams can be read by ffmpeg separately using command line and then try to read both streams:

  1. First try video: ffmpeg -loglevel level+trace -f rawvideo -pixel_format uyvy422 -video_size 720x486 -r 30 -i tcp://127.0.0.1:61284 -y -vf yadif -pix_fmt yuv420p -c:v h264_nvenc -c:a aac -profile:v high -level 3.1 -r 30 -preset ll -tune ull -f mpegts c:\git\video.ts
  2. Then audio: ffmpeg -loglevel level+trace -f s16le -ar 48000 -ac 2 -i tcp://127.0.0.1:61283 -y -vf yadif -pix_fmt yuv420p -c:v h264_nvenc -c:a aac -profile:v high -level 3.1 -r 30 -preset ll -tune ull -f mpegts c:\git\video.ts
  3. And then both: ffmpeg -loglevel level+trace -f s16le -ar 48000 -ac 2 -i tcp://127.0.0.1:61283 -f rawvideo -pixel_format uyvy422 -video_size 720x486 -r 30 -i tcp://127.0.0.1:61284 -y -vf yadif -pix_fmt yuv420p -c:v h264_nvenc -c:a aac -profile:v high -level 3.1 -r 30 -preset ll -tune ull -f mpegts c:\git\video.ts

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants