C0D3D3V / bbb-dl

Downlaod BigBlueButton recordings. A simple scrapper for Big Blue Button lessons. Download and merge the audio and video files of a BigBlueButton conference from the conference replay url.
MIT License
67 stars 17 forks source link

youtube_dl.postprocessor.ffmpeg.FFmpegPostProcessorError: Conversion failed! #2

Closed pprw closed 3 years ago

pprw commented 3 years ago

On debian stable, I have this error at the last step of the process. I don't have it on another system running debian unstable.

Traceback (most recent call last):
  File "/usr/local/bin/bbb-dl", line 10, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.7/dist-packages/bbb_dl/main.py", line 690, in main
    args.keep_tmp_files,
  File "/usr/local/lib/python3.7/dist-packages/bbb_dl/main.py", line 220, in run
    self.ffmpeg.mux_slideshow_with_webcam(slideshow_path, webcams_path, webcam_w, webcam_h, result_path)
  File "/usr/local/lib/python3.7/dist-packages/bbb_dl/ffmpeg.py", line 86, in mux_slideshow_with_webcam
    "ultrafast",
  File "/usr/local/lib/python3.7/dist-packages/bbb_dl/ffmpeg.py", line 58, in run_ffmpeg_multiple_files
    raise FFmpegPostProcessorError(msg)
youtube_dl.postprocessor.ffmpeg.FFmpegPostProcessorError: Conversion failed!
C0D3D3V commented 3 years ago

Please run bbb-dl with the option -v so we get more debug information.

Which version of bbb-dl are you using?

pprw commented 3 years ago

Thank for the quick answer.

I am running bbb-dl 0.4 (installed today)

$ bbb-dl --version
bbb-dl 0.4

Here is the complete log (without url for privacy reason), files are already there from previous attempt:


$ bbb-dl -v ...
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2019.01.17
[debug] Python version 3.7.3 (CPython) - Linux-4.19.0-13-amd64-x86_64-with-debian-10.7
[debug] exe versions: ffmpeg 4.1.6-1, ffprobe 4.1.6-1, phantomjs 2.1.1, rtmpdump 2.4
[debug] Proxy map: {}
[BBB] Downloading meta informations
[BBB] 67a939c6406c54e348dc9ede72f48303a1fbe255-1610988048301: Downloading webpage
[BBB] 67a939c6406c54e348dc9ede72f48303a1fbe255-1610988048301: Downloading XML
[BBB] 67a939c6406c54e348dc9ede72f48303a1fbe255-1610988048301: Downloading XML
[BBB] 67a939c6406c54e348dc9ede72f48303a1fbe255-1610988048301: Downloading XML
[BBB] BBB version: 2.7.10
[BBB] Downloading slides
[BBB] Slide slide-000.png is already present
[BBB] Slide slide-001.png is already present
[BBB] Slide slide-000.png is already present
[BBB] Slide slide-001.png is already present
[BBB] Slide slide-002.png is already present
[BBB] Slide slide-003.png is already present
[BBB] Slide slide-004.png is already present
[BBB] Slide slide-005.png is already present
[BBB] Slide slide-006.png is already present
[BBB] Slide slide-007.png is already present
[BBB] Slide slide-008.png is already present
[BBB] Slide slide-009.png is already present
[BBB] Slide slide-008.png is already present
[BBB] Slide slide-009.png is already present
[BBB] Slide slide-010.png is already present
[BBB] Slide slide-011.png is already present
[BBB] Slide slide-012.png is already present
[BBB] Slide slide-013.png is already present
[BBB] Slide slide-012.png is already present
[BBB] Slide slide-011.png is already present
[BBB] Slide slide-012.png is already present
[BBB] Slide slide-013.png is already present
[BBB] Slide slide-014.png is already present
[BBB] Slide slide-015.png is already present
[BBB] Slide slide-016.png is already present
[BBB] Slide slide-015.png is already present
[BBB] Slide slide-014.png is already present
[BBB] Slide slide-013.png is already present
[BBB] Slide slide-012.png is already present
[BBB] Slide slide-011.png is already present
[BBB] Slide slide-010.png is already present
[BBB] Slide slide-011.png is already present
[BBB] Slide slide-012.png is already present
[BBB] Slide slide-013.png is already present
[BBB] Slide slide-014.png is already present
[BBB] Slide slide-015.png is already present
[BBB] Slide slide-014.png is already present
[BBB] Slide slide-013.png is already present
[BBB] Slide slide-012.png is already present
[BBB] Slide slide-011.png is already present
[BBB] Slide slide-010.png is already present
[BBB] Slide slide-009.png is already present
[BBB] Slide slide-008.png is already present
[BBB] Slide slide-007.png is already present
[BBB] Slide slide-006.png is already present
[BBB] Slide slide-005.png is already present
[BBB] Slide slide-006.png is already present
[BBB] Slide slide-007.png is already present
[BBB] Slide slide-008.png is already present
[BBB] Slide slide-009.png is already present
[BBB] Downloading webcams.webm
[debug] Default format spec: bestvideo+bestaudio/best
[debug] Invoking downloader on '.../webcams.webm'
[download] 67a939c6406c54e348dc9ede72f48303a1fbe255-1610988048301/webcams.webm has already been downloaded
[download] 100% of 132.08MiB
[BBB] Downloading deskshare.webm
[debug] Default format spec: bestvideo+bestaudio/best
[debug] Invoking downloader on '.../deskshare/deskshare.webm'
ERROR: unable to download video data: HTTP Error 404: Not Found
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/youtube_dl/YoutubeDL.py", line 1909, in process_info
    success = dl(filename, info_dict)
  File "/usr/lib/python3/dist-packages/youtube_dl/YoutubeDL.py", line 1848, in dl
    return fd.download(name, info)
  File "/usr/lib/python3/dist-packages/youtube_dl/downloader/common.py", line 364, in download
    return self.real_download(filename, info_dict)
  File "/usr/lib/python3/dist-packages/youtube_dl/downloader/http.py", line 341, in real_download
    establish_connection()
  File "/usr/lib/python3/dist-packages/youtube_dl/downloader/http.py", line 109, in establish_connection
    ctx.data = self.ydl.urlopen(request)
  File "/usr/lib/python3/dist-packages/youtube_dl/YoutubeDL.py", line 2212, in urlopen
    return self._opener.open(req, timeout=self._socket_timeout)
  File "/usr/lib/python3.7/urllib/request.py", line 531, in open
    response = meth(req, response)
  File "/usr/lib/python3.7/urllib/request.py", line 641, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/lib/python3.7/urllib/request.py", line 569, in error
    return self._call_chain(*args)
  File "/usr/lib/python3.7/urllib/request.py", line 503, in _call_chain
    result = func(*args)
  File "/usr/lib/python3.7/urllib/request.py", line 649, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 404: Not Found

[BBB] Create slideshow
[BBB] Trimming slide (frame 0 / 49) at time stamp 00:00 (Duration: 00:07)
[BBB] Trimming slide (frame 1 / 49) at time stamp 00:07 (Duration: 00:01)
[BBB] Trimming slide (frame 2 / 49) at time stamp 00:08 (Duration: 00:53)
[BBB] Trimming slide (frame 3 / 49) at time stamp 01:01 (Duration: 02:39)
[BBB] Trimming slide (frame 4 / 49) at time stamp 03:40 (Duration: 05:15)
[BBB] Trimming slide (frame 5 / 49) at time stamp 08:56 (Duration: 03:17)
[BBB] Trimming slide (frame 6 / 49) at time stamp 12:13 (Duration: 05:10)
[BBB] Trimming slide (frame 7 / 49) at time stamp 17:24 (Duration: 02:11)
[BBB] Trimming slide (frame 8 / 49) at time stamp 19:36 (Duration: 01:37)
[BBB] Trimming slide (frame 9 / 49) at time stamp 21:13 (Duration: 05:39)
[BBB] Trimming slide (frame 10 / 49) at time stamp 26:53 (Duration: 05:31)
[BBB] Trimming slide (frame 11 / 49) at time stamp 32:24 (Duration: 00:25)
[BBB] Trimming slide (frame 12 / 49) at time stamp 32:50 (Duration: 00:05)
[BBB] Trimming slide (frame 13 / 49) at time stamp 32:56 (Duration: 09:09)
[BBB] Trimming slide (frame 14 / 49) at time stamp 42:06 (Duration: 06:26)
[BBB] Trimming slide (frame 15 / 49) at time stamp 48:33 (Duration: 01:51)
[BBB] Trimming slide (frame 16 / 49) at time stamp 50:24 (Duration: 03:20)
[BBB] Trimming slide (frame 17 / 49) at time stamp 53:45 (Duration: 01:52)
[BBB] Trimming slide (frame 18 / 49) at time stamp 55:37 (Duration: 00:00)
[BBB] Trimming slide (frame 19 / 49) at time stamp 55:38 (Duration: 01:17)
[BBB] Trimming slide (frame 20 / 49) at time stamp 56:55 (Duration: 00:00)
[BBB] Trimming slide (frame 21 / 49) at time stamp 56:56 (Duration: 00:00)
[BBB] Trimming slide (frame 22 / 49) at time stamp 56:57 (Duration: 00:45)
[BBB] Trimming slide (frame 23 / 49) at time stamp 57:42 (Duration: 03:22)
[BBB] Trimming slide (frame 24 / 49) at time stamp 01:01:04 (Duration: 15:56)
[BBB] Trimming slide (frame 25 / 49) at time stamp 01:17:00 (Duration: 00:00)
[BBB] Trimming slide (frame 26 / 49) at time stamp 01:17:01 (Duration: 00:00)
[BBB] Trimming slide (frame 27 / 49) at time stamp 01:17:01 (Duration: 00:00)
[BBB] Trimming slide (frame 28 / 49) at time stamp 01:17:02 (Duration: 00:00)
[BBB] Trimming slide (frame 29 / 49) at time stamp 01:17:02 (Duration: 00:00)
[BBB] Trimming slide (frame 30 / 49) at time stamp 01:17:03 (Duration: 05:47)
[BBB] Trimming slide (frame 31 / 49) at time stamp 01:22:50 (Duration: 00:00)
[BBB] Trimming slide (frame 32 / 49) at time stamp 01:22:50 (Duration: 00:01)
[BBB] Trimming slide (frame 33 / 49) at time stamp 01:22:51 (Duration: 02:13)
[BBB] Trimming slide (frame 34 / 49) at time stamp 01:25:04 (Duration: 00:00)
[BBB] Trimming slide (frame 35 / 49) at time stamp 01:25:05 (Duration: 08:13)
[BBB] Trimming slide (frame 36 / 49) at time stamp 01:33:18 (Duration: 00:00)
[BBB] Trimming slide (frame 37 / 49) at time stamp 01:33:19 (Duration: 00:00)
[BBB] Trimming slide (frame 38 / 49) at time stamp 01:33:19 (Duration: 00:00)
[BBB] Trimming slide (frame 39 / 49) at time stamp 01:33:19 (Duration: 00:00)
[BBB] Trimming slide (frame 40 / 49) at time stamp 01:33:19 (Duration: 00:00)
[BBB] Trimming slide (frame 41 / 49) at time stamp 01:33:20 (Duration: 00:00)
[BBB] Trimming slide (frame 42 / 49) at time stamp 01:33:20 (Duration: 06:59)
[BBB] Trimming slide (frame 43 / 49) at time stamp 01:40:19 (Duration: 00:00)
[BBB] Trimming slide (frame 44 / 49) at time stamp 01:40:19 (Duration: 00:00)
[BBB] Trimming slide (frame 45 / 49) at time stamp 01:40:20 (Duration: 00:11)
[BBB] Trimming slide (frame 46 / 49) at time stamp 01:40:31 (Duration: 04:59)
[BBB] Trimming slide (frame 47 / 49) at time stamp 01:45:31 (Duration: 00:00)
[BBB] Trimming slide (frame 48 / 49) at time stamp 01:45:31 (Duration: 00:01)
[BBB] Trimming slide (frame 49 / 49) at time stamp 01:45:32 (Duration: 05:51)
[BBB] Concat Slideshow
[BBB] Mux Slideshow
[debug] ffmpeg command line: ffmpeg -y -loglevel repeat+info -i file:67a939c6406c54e348dc9ede72f48303a1fbe255-1610988048301/webcams.webm -i file:67a939c6406c54e348dc9ede72f48303a1fbe255-1610988048301/slideshow.mp4 -map 0:a -c:a copy -map 1:v -c:v copy -shortest 'file:2021-01-18T17-40-48_Séminaire Strasbourgeois.mp4'

Traceback (most recent call last):
  File "/usr/local/bin/bbb-dl", line 10, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.7/dist-packages/bbb_dl/main.py", line 690, in main
    args.keep_tmp_files,
  File "/usr/local/lib/python3.7/dist-packages/bbb_dl/main.py", line 222, in run
    self.ffmpeg.mux_slideshow(slideshow_path, webcams_path, result_path)
  File "/usr/local/lib/python3.7/dist-packages/bbb_dl/ffmpeg.py", line 105, in mux_slideshow
    '-shortest',
  File "/usr/local/lib/python3.7/dist-packages/bbb_dl/ffmpeg.py", line 58, in run_ffmpeg_multiple_files
    raise FFmpegPostProcessorError(msg)
youtube_dl.postprocessor.ffmpeg.FFmpegPostProcessorError

I tried recording with and without deskshare, same issue.

C0D3D3V commented 3 years ago

can you try to run ffmpeg -y -loglevel repeat+info -i file:67a939c6406c54e348dc9ede72f48303a1fbe255-1610988048301/webcams.webm -i file:67a939c6406c54e348dc9ede72f48303a1fbe255-1610988048301/slideshow.mp4 -map 0:a -c:a copy -map 1:v -c:v copy -shortest 'file:2021-01-18T17-40-48_Séminaire Strasbourgeois.mp4'

In the same folder, so maybe we get a more detailed report from ffmpeg what is missing.

pprw commented 3 years ago

Here is the output of your command:


$ ffmpeg -y -loglevel repeat+info -i file:67a939c6406c54e348dc9ede72f48303a1fbe2pierre@91larc-r304-61:jsap2021$ ffmpeg -y -loglevel repeat+info -i file:67a939c6406c54e348dc9ede72f48303a1fbe255-1610988048301/webcams.webm -i file:67a939c6406c54e348dc9ede72f48303a1fbe255-1610988048301/slideshow.mp4 -map 0:a -c:a copy -map 1:v -c:v copy -shortest 'file:2021-01-18T17-40-48_Séminaire Strasbourgeois.mp4'
ffmpeg version 4.1.6-1~deb10u1 Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 8 (Debian 8.3.0-6)
  configuration: --prefix=/usr --extra-version='1~deb10u1' --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
  libavutil      56. 22.100 / 56. 22.100
  libavcodec     58. 35.100 / 58. 35.100
  libavformat    58. 20.100 / 58. 20.100
  libavdevice    58.  5.100 / 58.  5.100
  libavfilter     7. 40.101 /  7. 40.101
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  3.100 /  5.  3.100
  libswresample   3.  3.100 /  3.  3.100
  libpostproc    55.  3.100 / 55.  3.100
Input #0, matroska,webm, from 'file:67a939c6406c54e348dc9ede72f48303a1fbe255-1610988048301/webcams.webm':
  Metadata:
    creation_time   : 2021-01-19T00:28:11.000000Z
    ENCODER         : Lavf58.29.100
  Duration: 01:51:23.67, start: -0.007000, bitrate: 165 kb/s
    Stream #0:0: Video: vp9 (Profile 0), yuv420p(tv, progressive), 640x480, SAR 1:1 DAR 4:3, 24 fps, 24 tbr, 1k tbn, 1k tbc (default)
    Metadata:
      ENCODER         : Lavc58.54.100 libvpx-vp9
      DURATION        : 01:51:23.674000000
    Stream #0:1: Audio: opus, 48000 Hz, stereo, fltp (default)
    Metadata:
      ENCODER         : Lavc58.54.100 libopus
      DURATION        : 01:51:23.654000000
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'file:67a939c6406c54e348dc9ede72f48303a1fbe255-1610988048301/slideshow.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.20.100
  Duration: 01:51:23.75, start: 0.000000, bitrate: 135 kb/s
    Stream #1:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 1600x1200 [SAR 1:1 DAR 4:3], 134 kb/s, 24 fps, 24 tbr, 90k tbn, 48 tbc (default)
    Metadata:
      handler_name    : VideoHandler
[mp4 @ 0x556f36078040] track 0: codec frame size is not set
[mp4 @ 0x556f36078040] opus in MP4 support is experimental, add '-strict -2' if you want to use it.
Could not write header for output file #0 (incorrect codec parameters ?): Experimental feature
Stream mapping:
  Stream #0:1 -> #0:0 (copy)
  Stream #1:0 -> #0:1 (copy)
C0D3D3V commented 3 years ago

Interesting, seems that in the old version of FFmepg, copying opus to mp4 was still experimental. I use ffmpeg version n4.3.1, so I did not notice that. We could either put -strict -2 in the command or delete -c:a copy from the command. Would you please try this once: ffmpeg -y -loglevel repeat+info -i file:67a939c6406c54e348dc9ede72f48303a1fbe255-1610988048301/webcams.webm -i file:67a939c6406c54e348dc9ede72f48303a1fbe255-1610988048301/slideshow.mp4 -map 0:a -map 1:v -c:v copy -shortest 'file:2021-01-18T17-40-48_Séminaire Strasbourgeois.mp4'

pprw commented 3 years ago

Interesting, seems that in the old version of FFmepg, copying opus to mp4 was still experimental. I use ffmpeg version n4.3.1, so I did not notice that. We could either put -strict -2 in the command or delete -c:a copy from the command.

Yes. This is why it was working on debian unstable with more recent version of ffmpeg and not on debian stable.

Would you please try this once: ffmpeg -y -loglevel repeat+info -i file:67a939c6406c54e348dc9ede72f48303a1fbe255-1610988048301/webcams.webm -i file:67a939c6406c54e348dc9ede72f48303a1fbe255-1610988048301/slideshow.mp4 -map 0:a -map 1:v -c:v copy -shortest 'file:2021-01-18T17-40-48_Séminaire Strasbourgeois.mp4'

Encoding works with this one (with audio output in aac).

$ ffmpeg -y -loglevel repeat+info -i file:67a939c6406c54e348dc9ede72f48303a1fbe255-1610988048301/webcams.webm -i file:67a939c6406c54e348dc9ede72f48303a1fbe255-1610988048301/slideshow.mp4 -map 0:a -map 1:v -c:v copy -shortest 'file:2021-01-18T17-40-48_Séminaire Strasbourgeois.mp4'
ffmpeg version 4.1.6-1~deb10u1 Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 8 (Debian 8.3.0-6)
  configuration: --prefix=/usr --extra-version='1~deb10u1' --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
  libavutil      56. 22.100 / 56. 22.100
  libavcodec     58. 35.100 / 58. 35.100
  libavformat    58. 20.100 / 58. 20.100
  libavdevice    58.  5.100 / 58.  5.100
  libavfilter     7. 40.101 /  7. 40.101
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  3.100 /  5.  3.100
  libswresample   3.  3.100 /  3.  3.100
  libpostproc    55.  3.100 / 55.  3.100
Input #0, matroska,webm, from 'file:67a939c6406c54e348dc9ede72f48303a1fbe255-1610988048301/webcams.webm':
  Metadata:
    creation_time   : 2021-01-19T00:28:11.000000Z
    ENCODER         : Lavf58.29.100
  Duration: 01:51:23.67, start: -0.007000, bitrate: 165 kb/s
    Stream #0:0: Video: vp9 (Profile 0), yuv420p(tv, progressive), 640x480, SAR 1:1 DAR 4:3, 24 fps, 24 tbr, 1k tbn, 1k tbc (default)
    Metadata:
      ENCODER         : Lavc58.54.100 libvpx-vp9
      DURATION        : 01:51:23.674000000
    Stream #0:1: Audio: opus, 48000 Hz, stereo, fltp (default)
    Metadata:
      ENCODER         : Lavc58.54.100 libopus
      DURATION        : 01:51:23.654000000
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'file:67a939c6406c54e348dc9ede72f48303a1fbe255-1610988048301/slideshow.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.20.100
  Duration: 01:51:23.75, start: 0.000000, bitrate: 135 kb/s
    Stream #1:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 1600x1200 [SAR 1:1 DAR 4:3], 134 kb/s, 24 fps, 24 tbr, 90k tbn, 48 tbc (default)
    Metadata:
      handler_name    : VideoHandler
Stream mapping:
  Stream #0:1 -> #0:0 (opus (native) -> aac (native))
  Stream #1:0 -> #0:1 (copy)
Press [q] to stop, [?] for help
Output #0, mp4, to 'file:2021-01-18T17-40-48_Séminaire Strasbourgeois.mp4':
  Metadata:
    encoder         : Lavf58.20.100
    Stream #0:0: Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      DURATION        : 01:51:23.654000000
      encoder         : Lavc58.35.100 aac
    Stream #0:1(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 1600x1200 [SAR 1:1 DAR 4:3], q=2-31, 134 kb/s, 24 fps, 24 tbr, 90k tbn, 90k tbc (default)
    Metadata:
      handler_name    : VideoHandler
frame=160408 fps=1755 q=-1.0 Lsize=  219069kB time=01:51:23.66 bitrate= 268.5kbits/s speed=73.1x    
video:109731kB audio:106054kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.521812%
[aac @ 0x55768bf1aec0] Qavg: 9382.068
C0D3D3V commented 3 years ago

I would say I remove -c:a copy from the command and release a new version.

If you want to remove it yourself, it is located here: https://github.com/C0D3D3V/bbb-dl/blob/99447c89178f4cbd4d3d34e07f6a558cf561e2b1/bbb_dl/ffmpeg.py#L99

pprw commented 3 years ago

ok thank. So you prefer to rencode (with a little of audio quality lost - I also read opus was very good with speech, aac less) than risking hazardous behavior with the experimental support of opus inside mp4 of old ffmpeg.

C0D3D3V commented 3 years ago

I think the audio quality of the BBB meetings is not the best anyway, so converting won't make much difference, but if we want to stay with opus, you would have to test that command ffmpeg -y -loglevel repeat+info -i file:67a939c6406c54e348dc9ede72f48303a1fbe255-1610988048301/webcams.webm -i file:67a939c6406c54e348dc9ede72f48303a1fbe255-1610988048301/slideshow.mp4 -strict -2 -map 0:a -c:a copy -map 1:v -c:v copy -shortest 'file:2021-01-18T17-40-48_Séminaire Strasbourgeois.mp4'

remove the output file 2021-01-18T17-40-48_Séminaire Strasbourgeois.mp4 first

pprw commented 3 years ago

Opus command works well (with a little warning "[mp4 @ 0x55c0a9f1c240] track 0: codec frame size is not set").

ffmpeg -y -loglevel repeat+info -i file:67a939c6406c54e348dc9ede72f48303a1fbe255-1610988048301/webcams.webm -i file:67a939c6406c54e348dc9ede72f48303a1fbe255-1610988048301/slideshow.mp4 -strict -2 -map 0:a -c:a copy -map 1:v -c:v copy -shortest 'file:2021-01-18T17-40-48_Séminaire Strasbourgeois.mp4'
ffmpeg version 4.1.6-1~deb10u1 Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 8 (Debian 8.3.0-6)
  configuration: --prefix=/usr --extra-version='1~deb10u1' --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
  libavutil      56. 22.100 / 56. 22.100
  libavcodec     58. 35.100 / 58. 35.100
  libavformat    58. 20.100 / 58. 20.100
  libavdevice    58.  5.100 / 58.  5.100
  libavfilter     7. 40.101 /  7. 40.101
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  3.100 /  5.  3.100
  libswresample   3.  3.100 /  3.  3.100
  libpostproc    55.  3.100 / 55.  3.100
Input #0, matroska,webm, from 'file:67a939c6406c54e348dc9ede72f48303a1fbe255-1610988048301/webcams.webm':
  Metadata:
    creation_time   : 2021-01-19T00:28:11.000000Z
    ENCODER         : Lavf58.29.100
  Duration: 01:51:23.67, start: -0.007000, bitrate: 165 kb/s
    Stream #0:0: Video: vp9 (Profile 0), yuv420p(tv, progressive), 640x480, SAR 1:1 DAR 4:3, 24 fps, 24 tbr, 1k tbn, 1k tbc (default)
    Metadata:
      ENCODER         : Lavc58.54.100 libvpx-vp9
      DURATION        : 01:51:23.674000000
    Stream #0:1: Audio: opus, 48000 Hz, stereo, fltp (default)
    Metadata:
      ENCODER         : Lavc58.54.100 libopus
      DURATION        : 01:51:23.654000000
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'file:67a939c6406c54e348dc9ede72f48303a1fbe255-1610988048301/slideshow.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.20.100
  Duration: 01:51:23.75, start: 0.000000, bitrate: 135 kb/s
    Stream #1:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 1600x1200 [SAR 1:1 DAR 4:3], 134 kb/s, 24 fps, 24 tbr, 90k tbn, 48 tbc (default)
    Metadata:
      handler_name    : VideoHandler
[mp4 @ 0x55c0a9f1c240] track 0: codec frame size is not set
Output #0, mp4, to 'file:2021-01-18T17-40-48_Séminaire Strasbourgeois.mp4':
  Metadata:
    encoder         : Lavf58.20.100
    Stream #0:0: Audio: opus (Opus / 0x7375704F), 48000 Hz, stereo, fltp (default)
    Metadata:
      ENCODER         : Lavc58.54.100 libopus
      DURATION        : 01:51:23.654000000
    Stream #0:1(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 1600x1200 [SAR 1:1 DAR 4:3], q=2-31, 134 kb/s, 24 fps, 24 tbr, 90k tbn, 90k tbc (default)
    Metadata:
      handler_name    : VideoHandler
Stream mapping:
  Stream #0:1 -> #0:0 (copy)
  Stream #1:0 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame=160409 fps=0.0 q=-1.0 Lsize=  149507kB time=01:51:23.66 bitrate= 183.2kbits/s speed=7.66e+03x    
video:109731kB audio:36274kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 2.398862%

If I compare both output size, there is quite a difference.

It also take few extra minutes with aac and reencoding.

C0D3D3V commented 3 years ago

ok, thanks for testing.then i change it later in the day, to -strict -2.

pprw commented 3 years ago

Thanks,

Adding

                '-strict',
                'experimental',

line 86 of the ffmpeg.py did it for me.

P-S: (experimental = -2)

C0D3D3V commented 3 years ago

Hope it works now :D I added it to both mix commands https://github.com/C0D3D3V/bbb-dl/commit/838a8d568712ec60a4a1c965c65653587550924b The options of ffmpeg are not so easy to see through in which place they may be placed...