Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 4, 2019 12:31:58

igboev
Зарегистрирован: 2019-01-04
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Нужна помощь опытного програмиста.

Здравствуйте, нужна помощь в написании программы и разъяснении некоторых моментов связанных с Питоном. Некоторый опыт у меня есть, с питоном познакомился совсем недавно и работать с ним понравилось. Сейчас делаю ПО для общения в сети, возникают затыки на которые не могу найти ответов. Например как использовать библиотеки если они под другую версию питона, как собирать проекты для запуска на другой машине, другой ОС, как делать “быстрые” вставки для ускорения работы приложения.
Вообщем нужен опытный наставник с опытом в сетевом и системном программировании, для помощи в написании программы, помощи по конкретным вопросам и повышении моего уровня в питоне.
Вопросы, работа со звуком, сжатие кодеками spee opus и.т.п. защита информации, аутинтификация и ширование, сетевые библиотеки типа twisted, кросс-платформенные решения. Возмездная помощь рассматривается. Понятно что иногда легче самому сделать чем кого то научить, но мне интересно разобраться в этом всем.

Отредактировано igboev (Янв. 8, 2019 21:56:38)

Офлайн

#2 Янв. 4, 2019 13:54:39

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Нужна помощь опытного програмиста.

предлагаю вам для начала отказаться от всего и сразу и перейти на модульный вид.
Думать о том как это запустить и собрать под другую платформу - нужно тогда, когда проект уже будет готов. Вы за неделю всеравно его не напишите, а кому времени забудете что читали.
Другими словами решайте проблемы по мере их поступления и развития вашего проекта.

Использование библиотек под разные версии питона гуглится например за 5 минут. тут вам наставник не нужен. И единого рецепта нет. зачастую приходится переписывать самому. Либо писать свое если такой библиотеки под вашу версию питона нет используя ту что есть как шаблон для полета мысли.

Быстрые вставки - ?

дальше идет перечень всего что вам опять же нужно изучить. Это чтения большого обьема книг, статей и форумов. Опять же всему свое время. Сомневаюсь что вы пишите одновременно код для звука и сообщений. Начните с сообщений. Сделаете их = перейдете на ступень выше и опыта уже будет побольше.
Даже если найдется альтруист который сядет вам вбивать знания в голову вы их всеравно не усвоите так как это непонятный поток информации.

Ну и к сожалению - уровень такого программиста катируется солидным басовым эквивалентом. И скорее всего у него своих задач вагон и 100500 тележек. Потому 99 процентов что объяснять вам то что можно найти в свободном доступе в сети он не будет.

Так что разбейте задачу на этапы. Начните их выполнять и пишите свои вопросы когда не можете решить тот или иной шаг.



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#3 Янв. 4, 2019 17:18:43

igboev
Зарегистрирован: 2019-01-04
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Нужна помощь опытного програмиста.

ZerG
предлагаю вам для начала отказаться от всего и сразу и перейти на модульный вид. Думать о том как это запустить и собрать под другую платформу - нужно тогда, когда проект уже будет готов. Вы за неделю всеравно его не напишите, а кому времени забудете что читали. Другими словами решайте проблемы по мере их поступления и развития вашего проекта. Использование библиотек под разные версии питона гуглится например за 5 минут. тут вам наставник не нужен. И единого рецепта нет. зачастую приходится переписывать самому. Либо писать свое если такой библиотеки под вашу версию питона нет используя ту что есть как шаблон для полета мысли. Быстрые вставки - ?дальше идет перечень всего что вам опять же нужно изучить. Это чтения большого обьема книг, статей и форумов. Опять же всему свое время. Сомневаюсь что вы пишите одновременно код для звука и сообщений. Начните с сообщений. Сделаете их = перейдете на ступень выше и опыта уже будет побольше. Даже если найдется альтруист который сядет вам вбивать знания в голову вы их всеравно не усвоите так как это непонятный поток информации. Ну и к сожалению - уровень такого программиста катируется солидным басовым эквивалентом. И скорее всего у него своих задач вагон и 100500 тележек. Потому 99 процентов что объяснять вам то что можно найти в свободном доступе в сети он не будет. Так что разбейте задачу на этапы. Начните их выполнять и пишите свои вопросы когда не можете решить тот или иной шаг.
Спасибо за рекомендации, с большинством я огласен и даже так и поступил, сначала сделал чат для сообщений, когда он заработал, начал делать для звука, звук тоже заработал, начал думать как сжать звук здесь застрял на том что кодек Speex не ставится в питон2.7 поиски в гугле мало чего полезного дали, решил подвесить задачку и попробовал шифровать звук, тут опять с сообщениями все работает со звуком не очень примеров такого шифрования потока чет не нашел. Ну вот пошел на форум искать помощи. Кстати если фраза про базовые единицы была завуалированным предложением, то ко мне лучше прямо с такими предложениями. Вот конкретные вопросы если угодно, чем и как лучше сжать звук с микрофона не создавая серьезных задержек. Или как зашифровать звуковой поток и расшифровать и прослушать его со стороны сервера? На счет уровня программиста и задач 100500, это ведь у кого как, программисты часто народ свободолюбивый и ценят эту свободу выше денег, поэтому предпочитают свободно жить получая меньше, чем таскаться на работу к шефу с 9 до 18 и получать больше, не все конечно но точно многие.

Отредактировано igboev (Янв. 4, 2019 17:23:50)

Офлайн

#4 Янв. 4, 2019 23:01:32

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Нужна помощь опытного програмиста.

igboev
Вот конкретные вопросы если угодно, чем и как лучше сжать звук с микрофона не создавая серьезных задержек. Или как зашифровать звуковой поток и расшифровать и прослушать его со стороны сервера?
ну учитывая что у вас питон2.7 попробуйте https://pypi.org/project/ffmpy/ оно вроде как работает под 2.7
Это обертка над FFmpeg.
FFmpeg умеет работать с потоковым звуком\видео, и те же функции были перенесены в ffmpy, данные могут быть записаны в stdin и прочитаны с stdout.
А уж как настроите достаточное сжатие FFmpeg-ом, советов полинтернета, например: https://raspberrypi.stackexchange.com/questions/1466/live-audio-stream-using-ffmpeg/4660#4660



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Янв. 4, 2019 23:43:41)

Офлайн

#5 Янв. 5, 2019 15:34:48

igboev
Зарегистрирован: 2019-01-04
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Нужна помощь опытного програмиста.

PEHDOM
Спасибо за направление, почитал про ffmpy но не нашел графика битрэйт\качество. Как выставлять степень сжатия?
если не сложно покажите пример кодирования и декодирования, ниже мои функции отправки и получения блока данных. Какой нибудь кодек работающий на Python 2.7 или 3

def send_data():
while True:
j=2
tg=msvcrt.getch() #включаем передачу потока нажатием кнопки на клаве
if tg=='' :
continue
while j>1 :
data = send_stream.read(LCHANK) # создаем блок данных для отправки, считываем из аудиопотока.

# гдето здесь нужно сжать данные, хотя жать может нужно еще при создании потока???
# data.encode(bla bla)

s.send(data) # отправляем блок сжатых данных в сокет на сервер
j=j+1
if j>10: #всякая фигня связанная с кнопкой запускающей передачу.
j=0
tg=''

pass

Нуу и прием с сервера (сервер просто пересылает всем то что получил без обработки).

p = pyaudio.PyAudio()

receive_stream = p.open(format=FORMAT, channels=CHANNELS, rate=RATE, output=True, frames_per_buffer=CHUNK)
send_stream = p.open(format=FORMAT, channels=CHANNELS, rate=RATE, input=True, frames_per_buffer=CHUNK)

def receive_data():
while True :

data = s.recv(LCHANK) #считываем блок сжатых данных из сокета

# Гдето здесь наверно нужно декодировать данные кодеком, может с использованием буфера
# data.decode(bla bla)
#frames.append(data)

receive_stream.write(data) #пишем данные в аудиопоток для прослушивания.

pass

Офлайн

#6 Янв. 5, 2019 18:32:00

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Нужна помощь опытного програмиста.

igboev
# гдето здесь нужно сжать данные, хотя жать может нужно еще при создании потока???
чтото мне подсказывает что данные нужно жать еще при создании

igboev
Как выставлять степень сжатия?
если не сложно покажите пример кодирования и декодирования, ниже мои функции отправки и получения блока данных
ну както так,
 import subprocess
from ffmpy import FFmpeg
.....
ff = FFmpeg(
     inputs={'pipe:0': None}, # тут по идее задаеться что у нас на входе, формат, битрейт и тд...данные читаем из STDIN
     outputs={'pipe:1': '-ar 8000 -f alsa -acodec mp2 -b:a 128k'} # тут задаем что у нас на выходе, степень сжания, битрейт, формат и тд...данные пишем в STDOUT  за правильность аргументов не ручаюсь , но вобщем" -ar 8000" это семплрейт а "-b:a 128k" битрейт..
     )
stdout, stderr = ff.run(input_data=send_stream.read(), stdout=subprocess.PIPE)  # тут указываем что на вход подаем ваш поток а то что FFmpeg будет кидать в STDOUT перенаправляем используя subprocess.PIPE в stdout (это имя переменной)
.....
data = stdout.read(LCHANK) # а тут уже создаем блок данных для отправки, считываем из stdout в котором данные уже пережаты FFmpeg-ом

это скорее не код а псевдокод, так пишу “на коленке” поглядывая в документацию… но общая логика примерно такая…
декодировать также но в обратном порядке, хотя можно и не декодировать, если плеет сможет проиграть то что будет генерить FFmpeg.




==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version