idlesign / webinardump

Скачиватель для webinar.ru
https://github.com/idlesign/webinardump
17 stars 9 forks source link

Классный код. Жаль, что у меня только видео без звука качает, а так вообще отличный код! #1

Open Avonna opened 1 year ago

Avonna commented 1 year ago

Здравствуйте!

Вы очень крутой! Хотела бы выразить мою искреннюю признательность Вашему творчеству. Смотрю на Ваши коды - и восхищаюсь! Это супер!!! Меня, как полного новичка, очень вдохновляют Ваши мысли развиваться и двигаться дальше.

Классный код для скачивания с вебинар. ру, жаль, что только видео без звука скачивает. Или я что-то делаю не так, но только видео качает, а звука нет. А так вообще улет! Вы - супер!!!

idlesign commented 1 year ago

Здравствуйте.

Спасибо. Крутыми были вот эти дядьки %)

[...] жаль, что только видео без звука скачивает.

Не наблюдал такой проблемы. Проверьте сторонней программой, есть ли в получившемся файле аудио-дорожка. Если есть, то проверьте, установлен ли в системе кодек для этого формата дорожки. Если дорожки нет, то это звучит загадочно и можно пробовать 1. другую лекцию; 2. удостовериться, что в отдаваемых сайтом ts файлах дорожка есть.

Avonna commented 1 year ago

Здравствуйте. Спасибо, что ответили. Не ожидала, если честно. Это большая честь для меня, получить от Вас ответ. Благодарю от всей души.

Спасибо. Крутыми были вот эти дядьки %)

За шикарное чувство юмора - отдельные звезды!!!

По поводу звука в скачиваемых файлах достоверно ответить не могу, потому что реально новичок, знатный рукожоп и пенсионерка в одном лице (прошу прощения за это). Ваш код запускаю в colab (вдруг это важно), в jupiter через анаконду не запускается. Затем просто скачиваю готовый файл.

Если вдруг у Вас будет время и возможность проверить, то вот, например, вот эти ссылки. Можете ли подсказать, что именно я делаю не так? Я буду очень Вам благодарна.

а) https://events.webinar.ru/28373707/165353927/record-new/1775044077

https://events-delivery-records.webinar.ru/streamer/default/storage/events-storage.webinar.ru/api-storage/files/wowza/2022/11/19/c0efeca1da5329d90416df4ae6593dbb92ba5ac60d8f8a29f2d995ac55c.mp4/chunklist.m3u8 Только видео, но без звука

А если https://events-delivery-records.webinar.ru/streamer/default/storage/events-storage.webinar.ru/api-storage/files/wowza/2022/11/19/262e9c74304a71348cebcc16538ee4ab2556e58b7d434fb2f2d99ec5676.mp4/chunklist.m3u8 есть звук, но без видео.

Где именно я ошибаюсь и как это можно исправить?

Благодарю и хорошего Вам дня. С глубочайшим уважением и признательностью, Оксана.

idlesign commented 1 year ago

По поводу звука в скачиваемых файлах достоверно ответить не могу, потому что реально новичок, знатный рукожоп и пенсионерка в одном лице (прошу прощения за это).

Теряюсь, когда вижу «рукожоп» и «пенсионерка» в одном предложении.

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

Тут нужна была бы ссылка на исходную страницу, а не на те, что видны в консоли. Так или иначе, курс, я вижу уже не доступен, поэтому там пустой экран и нет звука.

Получить информацию о созданном файле можно при помощи ffmpeg:

$ ffprobe -v quiet -print_format json -show_format -show_streams myfile.mp4
bobka-dv commented 1 year ago

Здравствуйте ! А как найти chunklist.m3u8, обычным поиском не находит? Можно для новичка объяснить ?))) record_new находит сразу, chunklist.m3u8 нет. Использую chrome. Проверял дополнительно на разных ссылках. типа https://events.webinar.ru/

idlesign commented 1 year ago

@bobka-dv

Здравствуйте ! А как найти chunklist.m3u8, обычным поиском не находит?

Здравствуйте.

Поскольку ваш вопрос не относится к обсуждавшейся здесь проблеме, для него следовало бы завести новую задачу (https://github.com/idlesign/webinardump/issues/new/choose).

А про использование написано тут: https://github.com/idlesign/webinardump#использование Что значит «обычный поиск» в данном контексте, увы, непонятно. В инструкции речь шла о необходимости перехода сначала на страницу с конкретным вебинаром.

a-lyashkov commented 10 months ago

поимел ту же проблему только с youtube-dl. выглядит как баг в ffmpeg или опциях его. исходный чанк ffprobe -v quiet -print_format json -show_format -show_streams media_359.ts

{
    "streams": [
        {
            "index": 0,
            "codec_name": "timed_id3",
            "codec_long_name": "timed ID3 metadata",
            "codec_type": "data",
            "codec_tag_string": "ID3 ",
            "codec_tag": "0x20334449",
            "id": "0x102",
            "r_frame_rate": "0/0",
            "avg_frame_rate": "0/0",
            "time_base": "1/90000",
            "start_pts": 341140770,
            "start_time": "3790.453000",
            "duration_ts": 547020,
            "duration": "6.078000",
            "disposition": {
                "default": 0,
                "dub": 0,
                "original": 0,
                "comment": 0,
                "lyrics": 0,
                "karaoke": 0,
                "forced": 0,
                "hearing_impaired": 0,
                "visual_impaired": 0,
                "clean_effects": 0,
                "attached_pic": 0,
                "timed_thumbnails": 0
            }
        },
        {
            "index": 1,
            "codec_name": "h264",
            "codec_long_name": "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10",
            "profile": "Constrained Baseline",
            "codec_type": "video",
            "codec_tag_string": "[27][0][0][0]",
            "codec_tag": "0x001b",
            "width": 1920,
            "height": 1080,
            "coded_width": 1920,
            "coded_height": 1080,
            "closed_captions": 0,
            "has_b_frames": 0,
            "pix_fmt": "yuv420p",
            "level": 42,
            "chroma_location": "left",
            "field_order": "progressive",
            "refs": 1,
            "is_avc": "false",
            "nal_length_size": "0",
            "id": "0x100",
            "r_frame_rate": "1/1",
            "avg_frame_rate": "0/0",
            "time_base": "1/90000",
            "start_pts": 341140770,
            "start_time": "3790.453000",
            "duration_ts": 547020,
            "duration": "6.078000",
            "bits_per_raw_sample": "8",
            "disposition": {
                "default": 0,
                "dub": 0,
                "original": 0,
                "comment": 0,
                "lyrics": 0,
                "karaoke": 0,
                "forced": 0,
                "hearing_impaired": 0,
                "visual_impaired": 0,
                "clean_effects": 0,
                "attached_pic": 0,
                "timed_thumbnails": 0
            }
        }
    ],
    "format": {
        "filename": "media_359.ts",
        "nb_streams": 2,
        "nb_programs": 1,
        "format_name": "mpegts",
        "format_long_name": "MPEG-TS (MPEG-2 Transport Stream)",
        "start_time": "3790.453000",
        "duration": "6.078000",
        "size": "152656",
        "bit_rate": "200929",
        "probe_score": 50
    }
}

то как склеилось ffprobe -v quiet -print_format json -show_format -show_streams chunklist-chunklist.mp4

{
    "streams": [
        {
            "index": 0,
            "codec_name": "h264",
            "codec_long_name": "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10",
            "profile": "Constrained Baseline",
            "codec_type": "video",
            "codec_tag_string": "avc1",
            "codec_tag": "0x31637661",
            "width": 1920,
            "height": 1080,
            "coded_width": 1920,
            "coded_height": 1080,
            "closed_captions": 0,
            "has_b_frames": 0,
            "pix_fmt": "yuv420p",
            "level": 42,
            "chroma_location": "left",
            "refs": 1,
            "is_avc": "true",
            "nal_length_size": "4",
            "r_frame_rate": "1/1",
            "avg_frame_rate": "19666000/3796531",
            "time_base": "1/90000",
            "start_pts": 0,
            "start_time": "0.000000",
            "duration_ts": 341687790,
            "duration": "3796.531000",
            "bit_rate": "144848",
            "bits_per_raw_sample": "8",
            "nb_frames": "19666",
            "disposition": {
                "default": 1,
                "dub": 0,
                "original": 0,
                "comment": 0,
                "lyrics": 0,
                "karaoke": 0,
                "forced": 0,
                "hearing_impaired": 0,
                "visual_impaired": 0,
                "clean_effects": 0,
                "attached_pic": 0,
                "timed_thumbnails": 0
            },
            "tags": {
                "language": "und",
                "handler_name": "VideoHandler",
                "vendor_id": "[0][0][0][0]"
            }
        }
    ],
    "format": {
        "filename": "chunklist-chunklist.mp4",
        "nb_streams": 1,
        "nb_programs": 0,
        "format_name": "mov,mp4,m4a,3gp,3g2,mj2",
        "format_long_name": "QuickTime / MOV",
        "start_time": "0.000000",
        "duration": "3796.531000",
        "size": "68974407",
        "bit_rate": "145341",
        "probe_score": 100,
        "tags": {
            "major_brand": "isom",
            "minor_version": "512",
            "compatible_brands": "isomiso2avc1mp41",
            "encoder": "Lavf58.76.100"
        }
    }
}
a-lyashkov commented 10 months ago

ffmpeg -i media_0.ts -c copy -bsf:v h264_mp4toannexb -f mpegts temp1.ts

ffmpeg version 4.4.4 Copyright (c) 2000-2023 the FFmpeg developers
  built with Apple clang version 13.1.6 (clang-1316.0.21.2.5)
  configuration: --prefix=/opt/local --cc=/usr/bin/clang --mandir=/opt/local/share/man --enable-audiotoolbox --disable-indev=jack --disable-libjack --disable-libopencore-amrnb --disable-libopencore-amrwb --disable-libxcb --disable-libxcb-shm --disable-libxcb-xfixes --enable-opencl --disable-outdev=xv --enable-sdl2 --disable-securetransport --enable-videotoolbox --enable-avfilter --enable-avresample --enable-fontconfig --enable-gnutls --enable-libass --enable-libbluray --enable-libdav1d --enable-libfreetype --enable-libfribidi --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-librsvg --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libzimg --enable-libzvbi --enable-lzma --enable-pthreads --enable-shared --enable-swscale --enable-zlib --enable-libaom --enable-libsvtav1 --arch=x86_64 --enable-x86asm --enable-gpl --enable-libvidstab --enable-libx264 --enable-libx265 --enable-libxvid --enable-postproc
  libavutil      56. 70.100 / 56. 70.100
  libavcodec     58.134.100 / 58.134.100
  libavformat    58. 76.100 / 58. 76.100
  libavdevice    58. 13.100 / 58. 13.100
  libavfilter     7.110.100 /  7.110.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  9.100 /  5.  9.100
  libswresample   3.  9.100 /  3.  9.100
  libpostproc    55.  9.100 / 55.  9.100
[mpegts @ 0x7fbbe200ae00] start time for stream 0 is not set in estimate_timings_from_pts
Input #0, mpegts, from 'media_0.ts':
  Duration: 00:00:10.07, start: 0.000000, bitrate: 56 kb/s
  Program 1
  Stream #0:0[0x102]: Data: timed_id3 (ID3  / 0x20334449)
  Stream #0:1[0x100]: Video: h264 (Constrained Baseline) ([27][0][0][0] / 0x001B), yuv420p(progressive), 1920x1080, 1 tbr, 90k tbn, 180k tbc
Output #0, mpegts, to 'temp1.ts':
  Metadata:
    encoder         : Lavf58.76.100
  Stream #0:0: Video: h264 (Constrained Baseline) ([27][0][0][0] / 0x001B), yuv420p(progressive), 1920x1080, q=2-31, 1 tbr, 90k tbn, 90k tbc
Stream mapping:
  Stream #0:1 -> #0:0 (copy)
Press [q] to stop, [?] for help
frame=    8 fps=0.0 q=-1.0 Lsize=      74kB time=00:00:09.07 bitrate=  66.7kbits/s speed=1.98e+04x
video:67kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 10.037564
a-lyashkov commented 10 months ago

вот так и теряется аудио.

ZippoML commented 2 months ago

@a-lyashkov как так? поясните, пожалуйста. Что сделать что б не терялось видео.