--- # looks like ffmpeg can do it # Create service Folder - name: "video_capture - streamer - create {{ streaming_working_folder }} folder" file: path: "{{ streaming_working_folder }}" state: directory mode: '0755' owner: root group: root register: folder_output - debug: msg: "{{ folder_output }}" # Create capture Folder - name: "video_capture - streamer - create {{ recording_capture_folder }} folder" file: path: "{{ recording_capture_folder }}" state: directory mode: '0755' owner: root group: root register: folder_output_2 - debug: msg: "{{ folder_output_2 }}" # this service shouldn't stay running - name: video_capture - streamer - stop stream_service if running systemd: name: stream_service.service state: stopped ignore_errors: yes # gonna try to automatically find the audio info # the card is MS201 - name: video_capture - get card ID shell: "arecord -l | grep {{ capture_device_ID_string }} | cut -d: -f1 | rev | cut -b 1" register: sound_ID_0 - name: video_capture - get device ID shell: "arecord -l | grep {{ capture_device_ID_string }} | cut -d: -f2 | rev | cut -b 1" register: sound_ID_1 - name: video_capture - set audio_device set_fact: audio_device: "hw:{{ sound_ID_0.stdout_lines[0] }},{{ sound_ID_1.stdout_lines[0] }}" # same with video, the lsusb ID is 534d:0021 # v4l2-ctl shows it as "AV TO USB2.0" # this checks a list and saves the only correct output - name: video_capture - check for each video device shell: "v4l2-ctl --list-devices 2> /dev/null | grep -A3 '{{ v4l2_strings }}' | grep video | head -n 1 | awk '{print $1}' || true" register: v4l2_id_string_check loop: "{{ v4l2_id_string }}" loop_control: loop_var: v4l2_strings - name: video_capture - get video device when: video_check_output.stdout | length > 0 set_fact: video_device: "{{ video_check_output.stdout_lines[0] }}" no_log: true loop: "{{ v4l2_id_string_check.results }}" loop_control: loop_var: video_check_output - name: video_capture - show results debug: msg: - "Audio Device: {{ audio_device }}" - "Video Device: {{ video_device }}" # adding the preview service here - name: video_capture - streamer - preview - ffmpeg service #when: false block: - name: video_capture - streamer - preview - create folder file: path: "{{ stream_preview_folder }}" state: directory mode: '0755' - name: video_capture - streamer - preview - copy service script template: src: preview_service.sh dest: "{{ stream_preview_folder }}/preview_service.sh" mode: 0755 - name: video_capture - streamer - preview - create service file template: src: preview_service.service dest: /etc/systemd/system/preview_service.service mode: 0644 - name: video_capture - streamer - preview - daemon reload systemd: name: preview_service.service state: started enabled: yes daemon_reload: yes ...