Envío de canalización EOS gstreamer

Envío de canalización EOS gstreamer

Tengo un ejemplo de canalización de gstreamer:gst-launch-1.0 v4l2src device=/dev/video2 ! image/jpeg,width=1280, height=800, framerate=30/1 ! v4l2jpegdec ! queue ! v4l2h264enc extra-controls="controls, h264_profile=4, video_bitrate=620000" ! 'video/x-h264, profile=high, level=(string)4' ! h264parse ! matroskamux ! filesink location=output2.mkv

Que lo ejecuto desde la línea de comando. En lugar de hacer Ctrl+c para finalizar el proceso, quiero enviar un evento EOS al proceso.

es posible? Y si es así ¿alguien lo ha hecho o cuál es la solución?

Respuesta1

No pude encontrar una manera de hacer esto, pero agregué watchdog timeout=1000a la tubería y desconecté la entrada de video, luego el perro guardián finaliza la transmisión y genera el EOS. También tengo un -eal final de mi comando para asegurarme de que el archivo de video esté cerrado correctamente:

 gst-launch-1.0.exe rtspsrc location=rtsp://192.168.189.3:8554/bandwidth_h264 latency=0 ! decodebin ! watchdog timeout=1000 ! tee name=split split.! queue leaky=1 ! autovideosink sync=false split.! queue leaky=1 ! videoconvert ! x264enc ! mp4mux ! filesink location=c:/demo/test.mp4 -e

información relacionada