• Как поменять разрешение видео mp4, через ffmpeg 600 на 600 Python?

    ae_ph
    @ae_ph
    I'm a owl )
    Вы можете использовать модуль os в Python для выполнения команды ffmpeg для изменения разрешения видеофайла mp4. Вот пример того, как вы можете использовать функцию os.system() для изменения разрешения видеофайла из командной строки:
    import os
    
    input_file = "input.mp4"
    output_file = "result.mp4"
    
    os.system(f"ffmpeg -i {input_file} -s 600x600 {output_file}")


    Этот код изменит разрешение видеофайла "input.mp4" на 600x600 и сохранит его как "result.mp4".
    Параметр -i используется для указания входного файла, а параметр -s используется для указания нового разрешения.
    f"ffmpeg -i {входной_файл} -s 600x600 {выходной_файл}" — это f-строка, которая заменит переменные внутри фигурных скобок значениями переменных входной_файл и выходной_файл.

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

    Если вам нужен больший контроль над процессом и вы хотите получить информацию о видео, вы можете использовать библиотеку ffmpeg-python, которая является оболочкой инструмента командной строки FFmpeg. Эту библиотеку можно установить через pip:

    pip install ffmpeg-python

    Эта библиотека предоставляет простой и удобный интерфейс для выполнения команд FFmpeg в Python.
    Если вы хотите изменить разрешение видеофайла и сохранить то же соотношение сторон, вы можете использовать масштабный фильтр, вы можете использовать эту команду

    os.system(f"ffmpeg -i {input_file} -vf scale=600:-1 {output_file}")


    Здесь -1 в фильтре масштабирования заставит ffmpeg поддерживать соотношение сторон видео.
    Ответ написан
    5 комментариев
  • Как осуществить сохранение ГС в вк с помощь Python?

    @leexy
    В attachments должна быть ссылка на аудиофайл "link_mp3"
    import requests 
    f=open('dir_to_file.mp3', 'wb')
    audio = requests.get("https://url.com/file.mp3") 
    f.write(audio.content) 
    f.close()


    Вроде бы так)
    Ответ написан
    Комментировать
  • Как отправлять ГС вк?

    @slikkness
    Держи

    import vk_api
    from vk_api import VkUpload
    from vk_api.longpoll import VkLongPoll, VkEventType
    from vk_api.utils import get_random_id
    import requests
    
    token = ""
    
    session = requests.Session()
    auth = vk_api.VkApi(token=token, api_version='5.131')
    vk = auth.get_api()
    long_poll = VkLongPoll(auth)
    
    
    def upload_audio_msg(peer_ids):
        upload = VkUpload(vk)
        audio_msg = upload.audio_message('filename.mp3', peer_id=peer_ids)
        attachment = 'doc{}_{}'.format(audio_msg['audio_message']['owner_id'], audio_msg['audio_message']['id'])
        vk.messages.send(peer_id=peer_ids, attachment=attachment, random_id=get_random_id())
    
    
    while True:
        try:
            for event in long_poll.listen():
                if event.type == VkEventType.MESSAGE_NEW:
                    peer_id = event.peer_id
                    if event.from_me:
                        if event.text == 'test':
                            upload_audio_msg(peer_id)
        except Exception as er:
            print(er)
    Ответ написан
    1 комментарий
  • Игровой бот с БД для бесед в ВК на Python, можете помочь с созданием?

    MinTnt
    @MinTnt
    Так как проверка каждые 15 сек баланса, и само постоянное прибавление баланса абсолютно всем пользователям будет очень сильно нагружать. Лучше сделать так: в БД добавить параметр последней проверки баланса. time.time(), а далее, когда пользователь снова вводит команду баланса, ему в БД устанавливается в этот момент значение соответствующее;
    money(Деньги записанные в БД) + (time.time() - int(Время последнего обновления баланса записанное с БД)) // 15
    Таким образом это уменьшит нагрузку, и создаст иллюзию, что деньги прибавляет каждые 15 секунд.

    Минусы - если пользователь будет постоянно делать проверку баланса или тд, ему может и не начислять каждые 15 сек, так как время между запросами будет постоянно обновляться.
    Решение - сохранять в БД лишь то время, когда
    money + (time.time() - int(update_balance_time)) // 15

    Является больше нуля, если же меньше, то не обновлять в БД значение
    Ответ написан
    3 комментария