Alexey
cmd.Stdout ?
Это если подставить потом cmd.Stdout в reader
Илья
хм
Илья
см что-нибудь такое pr, pw := io.Pipe()
tr := io.TeeReader(u, pw)
Илья
даже pipe, наверное, хватит
Илья
ну, я не вдавался в подробности, но, думаю, горутина, которая занимается транскодингом может получать pipe, писать в pipewriter, а другая горутина pipereader отправить в telegramapi
Илья
см https://garbagecollected.org/2015/05/30/io-with-go-io-pipe/
Илья
я понятно выражаюсь? :)
Aleksandr
Подскажите пожалуйста.
Мне нужно внутри go выполнить команду ffmpeg.
На вход я передаю mp4 файл в виде resp.Body от http запроса, который выполнился до этого куска кода
cmd := exec.Command("ffmpeg",
"-f", "lavfi",
"-i", "anullsrc=channel_layout=stereo:sample_rate=44100",
"-i", "pipe:0",
"-shortest", "-c:v", "copy", "-c:a", "aac",
"output.mp4")
cmd.Stdin = resp.Body
cmd.Run()
На выходе после cmd.Run() хочу получить объект io.Reader, как результат работы ffmpeg, который можно было бы потом скормить телеграм боту
reader := tgbotapi.FileReader{Name: "test", Reader: output, Size: int64(contentLength)}
file := tgbotapi.NewDocumentUpload(messageChatID, reader)
код по ffmpeg выше сейчас сохраняет на диске output.mp4, тем саммым показывая, что передача resp.Body в пайп работает.
Нокак сделать, чтобы на выходе еще был результат обработки в виде объекта, а не файла, я не понимаю 😒
а resp.Body не закроется раньше, чем кодирование закончится?
Alexey
Alexey
Alexey
но я выше писал, что код по ffmpeg, что я показал сейчас сохраняет на диске output.mp4, тем саммым показывая, что передача resp.Body в пайп работает.
Мерль
https://medium.com/@cep21/preemptive-interface-anti-pattern-in-go-54c18ac0668a
Alexey
я понятно выражаюсь? :)
посмотрел, понял пока на до конца... не понятно как это поможет забрать результат обработки ffmpeg
Мерль
И обязательно нужно проверять на ошибку
Мерль
Go дайджест. События, статьи, интересные проекты из мира Go (1 — 12 мая 2017)
Всем привет!
В этом дайджесте представлены лучшие статьи за прошедшую неделю, а также новости, события и проекты, заслуживающие ваше внимание.
Новости, События
— Gobot 1.5 EN
— Релиз 3.1.0 веб-фреймворка echo EN
...
https://tehnojam.pro/category/development/go-dajdzhest-sobytija-stati-interesnye-proekty-iz-mira-go-1--12-maja-2017.html
Мерль
Мерль
http://golangshow.com/online/
Мерль
Мерль
Иначе было бы странно
igor
😁 это да
Илья
Илья
https://golang.org/pkg/os/exec/#Cmd.StdoutPipe
Илья
но, замечание о таймауте тоже стоит иметь ввиду, если что-то на вашей стороне будет тупить, соединение зарубят и вы получите что-то странное
Илья
это где такие тествоые задания, мне интересно, один аудиофайлы в телеграм заливает, теперь вот видео :)
Konstantin
Ребят, на убунте (xubuntu если точнее) установил golang-go, это версия 1.7. Накатил еще golang-1.8-go, а как переключиться на версию 1.8 теперь? а то команда go все еще к версии 1.7 привязана
Alex
подмени бинарник в /usr/bin
Илья
или поиграйся с PATH :)
Илья
подменять не стоит
Alex
или лучше симлинк создай туда где версия которая нужна лежит
Мерль
Alex
почему не стоит?
Konstantin
Неужели нет какого то встроенного способа? Зачем же тогда пакет golang-1.8-go вообще? При его установке то исполняемого файла go не появилось вообще
Alex
что занчит встроенного?
Alex
бинарник естественно есть
Илья
эм, а что за пакеты такие?
Илья
:O
Илья
из какой репы?
Илья
у авторов пакетов, наверное, стоит уточнить, почему они ставят свои файлы хрен пойми куда
Alex
Хм, ты ставишь 2 версии одного приложения, кто за тебя должен думать какая дефолтная?
Alex
Всё правильно что симлинк не меняется на новую, это было бы неожиданно
Мерль
hajimehoshi/oto: A low-level library to play sound
https://github.com/hajimehoshi/oto
Илья
ну, если хочется чего-то такого
Илья
то можно попробовать https://github.com/moovweb/gvm
Илья
я не пользовал, не знаю
Илья
я себе собирал из тарбола пакет
Илья
и скриптик есть https://gist.github.com/jniltinho/8758e15a9ef80a189fce
Alex
Да там тоже енв вариаблы подменить руками не сложнее чем тут, а так в жава мире про все наверное Тулуза есть, тока они стартуют 15 минут и под каждую отдельный снова нужен
Илья
я думаю, соорудить такое вполне можно, GOPATH GOROOT поменял и все
Mikalai
А там же в убунтe есть что-то типа update-alternatives
Nix
Подскажите библиотеку для asterisk , agi
Konstantin
Konstantin
MXLTN
друзья, есть веб апликейшн которые лопатит кучу данных, есть необходимость логировать, хочу испльзовать какой-то саас для логов что бы можно было искать по параметрам и анализировать потом, кто что юзает из такого/
MXLTN
?
Konstantin
Andrei
Alex
Konstantin
Эм, docker же
Скрип пишется и запускается на локальной машине, причем тут докер то?
Alex
ты до сих пор не запустил чтоли 1.8 ? та мдела на 5 минут
Andrei
Хорошо, кейсы у всех разные, но вопрос очевиден: а зачем при написании на машине разработчика 10 версий go?!
Alex
да хоть все - проблем же никаких
Andrei
Если протестировать сборку на другой версии: для этого делается скрипт/ci и сборка под разные версии
Dmitriy / დიმიტრი
Есть какие-то рекомендации по тому когда использовать указатель, а когда копировать объект?
Правильно ли я делаю, что избегаю излишнего копирования и возвращаю из функций указатель?
Alex
Alex
Andrei
Dmitriy / დიმიტრი
Konstantin