Получение файлов из камер с поддержкой Wi-Fi

Как правильно задавать вопросы Правильно сформулированный вопрос и его грамотное оформление способствует высокой вероятности получения достаточно содержательного и по существу ответа. Общая рекомендация по составлению тем: 1. Для начала воспользуйтесь поиском форума. 2. Укажите версию ОС вместе с разрядностью. Пример: LM 19.3 x64, LM Sarah x32 3. DE. Если вопрос касается двух, то через запятую. (xfce, KDE, cinnamon, mate) 4. Какое железо. (достаточно вывод inxi -Fxz в спойлере (как пользоваться спойлером смотрим здесь)) или же дать ссылку на hw-probe 5. Суть. Желательно с выводом консоли, логами. 6. Скрин. Просьба указывать 2, 3 и 4 независимо от того, имеет ли это отношение к вопросу или нет. Так же не забываем об общих правилах Как пример вот
Аватара пользователя

Автор темы
Bill Williamson
Сообщения: 928
Зарегистрирован: 31 авг 2016, 13:38
Решено: 34
Благодарил (а): 288 раз
Поблагодарили: 249 раз
Контактная информация:

Получение файлов из камер с поддержкой Wi-Fi

#1

19 сен 2016, 11:47

Доброго времени суток. Появилась надобность получать снимки и видеозаписи из фотоаппарата Nikon COOLPIX S6500 посредством Wi-Fi. Производитель вроде бы выпускает только приложение WirelessMobileUtility. Есть какой-нибудь способ в LM18 расшарить фотоаппарат через Wi-Fi?

Решение Bill Williamson » 01 июн 2017, 16:10

Перейти к ответу ➙
Изображение

Аватара пользователя

Dja
Сообщения: 6875
Зарегистрирован: 27 авг 2016, 20:03
Решено: 30
Откуда: Voskresensk
Благодарил (а): 1310 раз
Поблагодарили: 724 раза
Контактная информация:

Re: Получение файлов из камер с поддержкой Wi-Fi

#2

06 окт 2016, 15:59

я, кстати, вроде тоже что-то подобное делал. С телефона управлял камерой... Но как-то о том, чтобы это делать с ПК даже мысли не было ))

Аватара пользователя

Автор темы
Bill Williamson
Сообщения: 928
Зарегистрирован: 31 авг 2016, 13:38
Решено: 34
Благодарил (а): 288 раз
Поблагодарили: 249 раз
Контактная информация:

Получение файлов из камер с поддержкой Wi-Fi

#3

01 июн 2017, 16:10

Изображение

Аватара пользователя

demonlibra
Сообщения: 844
Зарегистрирован: 12 авг 2017, 09:09
Решено: 13
Откуда: Ростов-на-Дону
Благодарил (а): 29 раз
Поблагодарили: 204 раза
Контактная информация:

Получение файлов из камер с поддержкой Wi-Fi

#4

13 окт 2018, 13:44

Для NIKON COOLPIX P340 использую Airnef и скрипт, привязанный к горячим клавишам:

Код: Выделить всё

adapter="wlp2s0"					#Имя wifi адаптера
nikonssid="NikonP34040005585"				#SSID точки доступа NIKON
pathairnef="/home/demonlibra/.airnef/airnefcmd.py"	#Путь к программе AIRNEF
pathout="/mnt/data/Airnef"				#Путь для копирования файлов из NIKON

#Включаем wifi, если выключен
if [[ `nmcli radio wifi` = "disabled" ]]
	then
		yad --width=300 --form --timeout=5 --timeout-indicator=bottom --title="Wi-Fi выключен" --text="Включить Wi-Fi?"
		bbb=$?
		if [ $bbb = 0 ] || [ $bbb = 70 ]; then nmcli radio wifi on;	fi
		sleep 3
	fi

timeout=60

#Сканируем сеть и подключаемся к NIKON
if [[ `nmcli radio wifi` = "enabled" ]] && [[ `iwgetid $adapter -r` != $nikonssid ]]; then
	(for ((i=$timeout; i>1; i--)); do
		nmcli device wifi rescan ifname $adapter
		sleep 1
		if [[ `iwgetid $adapter -r` != $nikonssid ]]; then nmcli dev wifi connect $nikonssid; fi
		echo $(($i*99/$timeout))
		echo "# Осталось $i секунд"

		if [[ `iwgetid $adapter -r` = $nikonssid ]]; then i=0; fi

	done)|zenity --progress --title="Ожидание подключения к NIKON" --auto-close --auto-kill --width=300						
fi

#Запускаем airnef и копируем файлы из NIKON в каталог pathout
if [[ `nmcli radio wifi` = "enabled" ]] && [[ `iwgetid $adapter -r` = $nikonssid ]]
	then
		sleep 3
		gnome-terminal --wait --geometry 90x25 -t $nikonssid --hide-menubar -- bash -c "python $pathairnef --outputdir $pathout; echo; echo --------------------------------; echo; echo \"Скачивание завершено\"; echo; read -p \"Нажмите ENTER чтобы закрыть окно\""
		
		#Выключаем wifi, если питание от аккумулятора
		if [[ `acpi -a` != "Adapter 0: on-line" ]]; then nmcli radio wifi off; fi
fi
Включаю фотик и активирую в нем точку доступа, нажимаю горячие клавиши и получаю в каталоге "pathout" ранее не скачанные фото и видео файлы.
Basic (ZXSpectrum)→Ms-Dos→W95→W98→Me→XP→W7→Ubuntu 15.10→Xubuntu 16.04→Linux Mint 18.2-21.1
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD

Аватара пользователя

Автор темы
Bill Williamson
Сообщения: 928
Зарегистрирован: 31 авг 2016, 13:38
Решено: 34
Благодарил (а): 288 раз
Поблагодарили: 249 раз
Контактная информация:

Получение файлов из камер с поддержкой Wi-Fi

#5

13 окт 2018, 15:02

demonlibra писал(а):
13 окт 2018, 13:44
и скрипт
Кстати, можно доработать таким скриптом:

Код: Выделить всё

#!/bin/bash
# Скрипт раскладывает фотографии по каталогам вида гггг/мм, изменяет разрешение и качество в
# соответствии с заданными параметрами, а так же переименовывает изображения в формат
# гггг-мм-дд_чч-мм-сс.jpg
# На пример: /mnt/DCIM/IMG-20131014112354.jpg -> $HOME/Photo/2013/10/2013-10-14_11-23-54.jpg
#
# Данные о дате снимка ищутся в следующем порядке:
# 1) Exif данные (Exif.Photo.DateTimeOriginal и Exif.Image.DateTime)
# 2) В названии фотографии. Распознает различные варианты написания даты
# 3) Из даты создания файла
#
# При запуске без аргументов обрабатывает текущий каталог и все его подкаталоги. В качестве аргумента
# можно указать другой рабочий каталог-источник.
# НЕ удаляет оригиналы изображений!
# НЕ увеличивает разрешение
# Для работы необходим пакет exiv2 (sudo apt-get install exiv2)
##################################

src_dir=${1-`pwd`} # По умолчанию используется текущий каталог
dst_dir=$HOME/Photo # Каталог в который будут скопированны обработанные фотографии
quality=80  # Качество JPG изображения
resize=1600x900 # Размер после конвертации

# Ищем JPG файлы в указанной папке
#find "$src_dir" -iname "*.jpg" -print0 | sort | while IFS= read -r -d $'\0' file ; do

# Ищем JPG файлы в указанной папке и всех подпапках!
find "$src_dir" -iname "*.jpg" | sort | while IFS= read -r file ; do

  # Пробуем взять дату из Exif.Photo.DateTimeOriginal или Exif.Image.DateTime
  for photo_date in "Exif.Photo.DateTimeOriginal" "Exif.Image.DateTime" ; do
    photo_date=$(exiv2 -g "$photo_date" -Pv "$file")
    if [ -n "$photo_date" ] ; then  # Если дата найдена, прекращаем перебор
      break
    fi
  done

  if [ -z "$photo_date" ] ; then # Если в exif дата не найдена ищем в названии файла

    # Ищем дату в названии файла и приводим её к виду ггггммддччммсс
    photo_date=$(basename "$file" ".jpg" | egrep -o -m1 [0-9]\{4\}\([-_:\ ]?[0-9]\)\{10\})
      if [ -n "$photo_date" ] ; then

# Приводим дату к виду гггг:мм:дд чч:мм:сс для корректного добавляения в exif
photo_date=$(echo "$photo_date" | tr -d "\_\-\:\ " | sed 's/\([0-9]\{4\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)/\1:\2:\3 \4:\5:/')

# Добавляем дату из названия файла в exif
exiv2 -M"add Exif.Image.DateTime Ascii "$photo_date"" "$file"

      else # Если даты в названии не нашли, берем дату изменения (создания) файла
photo_date=$(date +"%Y:%m:%d %T" -r "$file")
#exiv2 -M"add Exif.Image.DateTime Ascii $photo_date" "$file"
      fi
  fi

  # Приводим различные вариации даты к единому виду гггг мм дд чч мм сс
  photo_date=$(echo "$photo_date" | egrep -o -m1 [0-9]\{4\}\([-_:\ ]?[0-9]\)\{10\} | tr -d "\_\-\:\ " | sed 's/\([0-9]\{4\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)/\1 \2 \3 \4 \5 /')

  # Разбиваем полученную дату (гггг мм дд чч мм сс) на фрагменты
  # $1 - Год, $2 - Месяц, $3 - День, $4 - Час, $5 - Минута, $6 - Секунда
  set -- $photo_date

  mkdir -p "$dst_dir/$1/$2" # Создаем структуру папок гггг/мм

  dest_file="$dst_dir/$1/$2/$1-$2-$3_$4-$5-$6.jpg" # Конечное имя файла
  
  a=0;  
  while [ -f "$dest_file" ] ; do
   md5src=$(md5sum "$file")
   md5src=${md5src% *}
   md5dst=$(md5sum "$dest_file")
   md5dst=${md5dst% *}
   if [ "$md5src" != "$md5dst" ] ; then
    dest_file="$dst_dir/$1/$2/$1-$2-$3_$4-$5-$6_$a.jpg"
    let "a+=1"
   else
    echo "Файл $dest_file уже существует";
    break
   fi 
  done
  
  # Копируем фотографию, только если исходный файл новее существующего или отсутствует. 
  # При копировании сохраняется дата создания фотографии
  cp -uvp "$file" "$dest_file"

  # Изменяем качество и размер фотографий, переименовываем и копируем в папку назначения
  # convert -quality "$quality" -resize "$resize"\> -verbose "$file" "$dest_file"

  # Устанавливаем дату создания файла такую же как и дата в exif
  # touch -t "$1$2$3$4$5.$6" "$dest_file"
  
done

exit 0
https://kubuntu.ru/node/11852#comment-138045
чтобы и сортировка была.
Изображение

Аватара пользователя

demonlibra
Сообщения: 844
Зарегистрирован: 12 авг 2017, 09:09
Решено: 13
Откуда: Ростов-на-Дону
Благодарил (а): 29 раз
Поблагодарили: 204 раза
Контактная информация:

Получение файлов из камер с поддержкой Wi-Fi

#6

13 окт 2018, 18:38

Bill Williamson писал(а):
13 окт 2018, 15:02
Кстати, можно доработать таким скриптом:
Полезно, если надо разобрать много фотографий за длительный период времени.
У меня задачи другие, но ваш код натолкнул на путь автоматизации сжатия после копирования фото. Так же убрал zenity и yad. Они там явно лишние.

Код: Выделить всё

#!/bin/bash

# Скрипт подключается к фотоаппарату через wifi и скачивает фото из видео из фотоаппарата программой airnef

adapter="wlp2s0"						# Имя wifi адаптера
nikonssid="NikonP34040005585"					# SSID точки доступа NIKON
pathairnef="/home/demonlibra/.airnef/airnefcmd.py"		# Путь к программе AIRNEF
pathout="/mnt/data/Airnef"					# Путь для копирования файлов из NIKON
quality=85							# Процент сжатия фото

# Включаем wifi, если выключен
if [[ `nmcli radio wifi` = "disabled" ]]
	then
		echo "Включаем Wi-Fi"
		nmcli radio wifi on
		sleep 3
	fi
nmcli -p radio wifi
echo --------------------------------

timeout=60

# Сканируем сеть и подключаемся к NIKON
if [[ `nmcli radio wifi` = "enabled" ]] && [[ `iwgetid $adapter -r` != $nikonssid ]]; then
	for ((i=$timeout; i>1; i--))
		do
			nmcli device wifi rescan ifname $adapter
			sleep 1
			if [[ `iwgetid $adapter -r` != $nikonssid ]]; then nmcli dev wifi connect $nikonssid; fi
			echo "# Осталось секунд: $i"
			if [[ `iwgetid $adapter -r` = $nikonssid ]]; then i=0; fi
	done					
fi

# Запускаем airnef и копируем файлы из NIKON в каталог pathout
if [[ `nmcli radio wifi` = "enabled" ]] && [[ `iwgetid $adapter -r` = $nikonssid ]]
	then
		sleep 3
		python $pathairnef --outputdir $pathout
fi

# Сжатие новых фотографий
find "$pathout" -iname "*.JPG" | sort | while IFS= read -r file
	do
		date_change=$(date +"%Y%m%d%H%M%S" -r "$file")				# дата изменения файла
		
		date_photo=$(exiv2 -g "Exif.Photo.DateTimeOriginal" -Pv "$file") 	# дата создания фото
		date_photo=`echo $date_photo | sed 's/\(:\| \)//g'`			# дата создания фото без двоеточий и пробелов

		difference=$(($date_change - $date_photo))

		# Сравнение даты создания фото и даты изменения для определения была ли фотография сжата ранее
		if [[ $difference < 3 ]]
			then 
				# Сжимаем фото
				convert -quality "$quality" -verbose "$file" "$file"
		fi
done
echo; echo --------------------------------; echo; echo "Скачивание завершено"; echo; read -p "Нажмите ENTER чтобы закрыть окно"

#Выключаем wifi, если питание от аккумулятора
if [[ `acpi -a` != "Adapter 0: on-line" ]]
	then
		nmcli radio wifi off
fi

exit 0
Basic (ZXSpectrum)→Ms-Dos→W95→W98→Me→XP→W7→Ubuntu 15.10→Xubuntu 16.04→Linux Mint 18.2-21.1
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD

Аватара пользователя

demonlibra
Сообщения: 844
Зарегистрирован: 12 авг 2017, 09:09
Решено: 13
Откуда: Ростов-на-Дону
Благодарил (а): 29 раз
Поблагодарили: 204 раза
Контактная информация:

Получение файлов из камер с поддержкой Wi-Fi

#7

13 окт 2018, 22:11

Еще причесал код немного

Код: Выделить всё

#!/bin/bash

# Скрипт подключается к фотоаппарату через Wi-Fi и скачивает фото из видео из фотоаппарата программой Airnef

adapter="wlp2s0"						# Имя Wi-Fi адаптера
SSID="NikonP34040005585"					# SSID точки доступа фотоаппарата
pathairnef="/home/demonlibra/.airnef/airnefcmd.py"		# Путь к программе AIRNEF
pathout="/mnt/data/Airnef"					# Путь для копирования файлов из фотоаппарата
quality=85							# Процент сжатия фото

# Включаем wifi, если выключен
if [[ `nmcli radio wifi` = "disabled" ]]
	then
		echo "Включаем Wi-Fi"
		nmcli radio wifi on
	fi
	
nmcli -p radio wifi
echo --------------------------------

timeout=60

# Сканируем сеть и подключаемся к фотоаппарату
if [[ `nmcli radio wifi` = "enabled" ]] && [[ `iwgetid $adapter -r` != $SSID ]]; then
	for ((i=$timeout; i>1; i--))
		do
			nmcli device wifi rescan ifname $adapter
			if [[ `iwgetid $adapter -r` != $SSID ]]
				then
					check=`nmcli con show $SSID`					
					if [ $? = 0 ]
						then nmcli --wait 1 con up $SSID		# Проверяем существование ранее созданного соединения и соединяемся
						else nmcli --wait 1 dev wifi connect $SSID	# Или подключаемся с созданием нового соединения
					fi
			fi
			echo "# Проверьте фотоаппарат и активируйте точку доступа. Осталось секунд: $i"
			if [[ `iwgetid $adapter -r` = $SSID ]]; then i=0; fi
	done
fi

# Запускаем airnef и копируем файлы из фотоаппарата в каталог pathout
if [[ `nmcli radio wifi` = "enabled" ]] && [[ `iwgetid $adapter -r` = $SSID ]]
	then
		sleep 3
		python $pathairnef --outputdir $pathout

		# Сжатие новых фотографий
		find "$pathout" -iname "*.JPG" | sort | while IFS= read -r file
			do
				if [[ `identify -format '%Q' "$file"` > 95 ]]
					then 
						# Сжимаем фото
						echo; echo --------------------------------; echo
						convert -quality "$quality" -verbose "$file" "$file"
						echo; echo --------------------------------; echo;
				fi
		done
		echo; echo --------------------------------; echo; echo "Скачивание и сжатие завершено"; echo; read -p "Нажмите ENTER чтобы закрыть окно"
fi

#Выключаем wifi, если питание от аккумулятора
if [[ `acpi -a` != "Adapter 0: on-line" ]]
	then
		nmcli radio wifi off
fi

exit 0
Basic (ZXSpectrum)→Ms-Dos→W95→W98→Me→XP→W7→Ubuntu 15.10→Xubuntu 16.04→Linux Mint 18.2-21.1
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD

Аватара пользователя

demonlibra
Сообщения: 844
Зарегистрирован: 12 авг 2017, 09:09
Решено: 13
Откуда: Ростов-на-Дону
Благодарил (а): 29 раз
Поблагодарили: 204 раза
Контактная информация:

Получение файлов из камер с поддержкой Wi-Fi

#8

16 фев 2020, 02:46

Кривые руки погубили любимый NIKON COOLPIX P340. На смену пришел CANON G9X MARK II.
Подружить с Airnef сходу не удалось.

1. Есть Bluetooth и Wi-Fi. И как всегда всё завязано на смартфоне со специальным приложением, которого мне в телефоне так не хватает. Вот на...зачем вообще может потребоваться отправлять фото в смартфон? Если кому-то это и надо, то точно не большинству и не каждый день.
2. В меню подключения к другим устройствам присутствует вариант ПК. Звучит обнадеживающе, если бы не одно волосатое но. Добавили они эту функцию ради картинки на коробке. Всех маркетологов кинуть в одну яму и сжечь.

В инструкции написано:

Код: Выделить всё

Издания Windows 7 «Начальная» и «Домашняя базовая» не поддерживаются.
...необходимо отдельно загрузить и установить пакет дополнительных компонентов Windows Media Feature Pack.
Интересно, что за де...мо у разработчиков в голове. При таком начале варианты с wine не хочется даже пытаться рассматривать.

В итоге, при выборе варианта Smartphone или PC попытки подключения Airnef приводили к разным ошибкам.

Несколько часов поиска привели на решение в теме форумаAirnef
Вроде должно подходить и для CANON G7X.

Если коротко, то надо в файле airnefcmd.py исключить строку 1137

Код: Выделить всё

#mtpwifi.sendProbeRequest(g.socketEvents)
На CANON`е для подключения выбираем вариант Smartphone.

Код: Выделить всё

python airnefcmd.py --ipaddress "Айпи_Адрес_Камеры" --connecttimeout 30 --outputdir "Куда_Сохраняем_Фото"
Вдруг важно

Настройки беспроводной связи -> Параметры Wi-Fi
NFC - Откл
Пароль - Откл
История подключения - Откл
Изменить размер отправки - Нет
Basic (ZXSpectrum)→Ms-Dos→W95→W98→Me→XP→W7→Ubuntu 15.10→Xubuntu 16.04→Linux Mint 18.2-21.1
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD

Аватара пользователя

demonlibra
Сообщения: 844
Зарегистрирован: 12 авг 2017, 09:09
Решено: 13
Откуда: Ростов-на-Дону
Благодарил (а): 29 раз
Поблагодарили: 204 раза
Контактная информация:

Получение файлов из камер с поддержкой Wi-Fi

#9

16 фев 2020, 13:44

Не удержался и добавил сценарии на github
https://github.com/demonlibra/airnef
Basic (ZXSpectrum)→Ms-Dos→W95→W98→Me→XP→W7→Ubuntu 15.10→Xubuntu 16.04→Linux Mint 18.2-21.1
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD

Закрыто

Вернуться в «Иное программное обеспечение»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 11 гостей