108 lines
3.0 KiB
YAML
108 lines
3.0 KiB
YAML
---
|
|
|
|
# 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
|
|
|
|
|
|
... |