^ thanks M. Eerie and donald, my way still works - and I need to update help.ffmpeg to include name.opus
Determining what audio we have:
Code: Select all
guest@porteus:/mnt/sdc2/sound/mp4$ ffmpeg -i Bodo\ Wartke\ -\ Nicht\ in\ meinem\ Namen\ \(Studio\)-1hBVqgxA_Cg.mkv
ffmpeg version 4.3.1 Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 10.2.0 (GCC)
configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --docdir=/usr/doc/-4.3.1/html --mandir=/usr/man --disable-debug --enable-shared --disable-static --enable-gpl --enable-libaom --enable-version3 --enable-avresample --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-gnutls --enable-libbluray --enable-libcdio --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libmp3lame --enable-opencl --enable-opengl --enable-libopenjpeg --enable-libpulse --enable-libsmbclient --enable-libwavpack --enable-pthreads --enable-postproc --enable-swscale --enable-avfilter --enable-libopus --enable-libspeex --enable-openal --enable-libass --enable-libx264 --enable-libx265 --enable-libgsm --enable-libxvid --enable-libtwolame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libgsm --enable-librtmp
libavutil 56. 51.100 / 56. 51.100
libavcodec 58. 91.100 / 58. 91.100
libavformat 58. 45.100 / 58. 45.100
libavdevice 58. 10.100 / 58. 10.100
libavfilter 7. 85.100 / 7. 85.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 7.100 / 5. 7.100
libswresample 3. 7.100 / 3. 7.100
libpostproc 55. 7.100 / 55. 7.100
Input #0, matroska,webm, from 'Bodo Wartke - Nicht in meinem Namen (Studio)-1hBVqgxA_Cg.mkv':
Metadata:
COMPATIBLE_BRANDS: iso6avc1mp41
MAJOR_BRAND : dash
MINOR_VERSION : 0
ENCODER : Lavf58.29.100
Duration: 00:04:20.02, start: -0.007000, bitrate: 539 kb/s
Stream #0:0: Video: h264 (Main), yuv420p(tv, bt709, progressive), 854x480 [SAR 1:1 DAR 427:240], 25 fps, 25 tbr, 1k tbn, 50 tbc (default)
Metadata:
HANDLER_NAME : VideoHandler
DURATION : 00:04:20.000000000
Stream #0:1(eng): Audio: opus, 48000 Hz, stereo, fltp (default)
Metadata:
DURATION : 00:04:20.021000000
the one line of interest being
Code: Select all
Stream #0:1(eng): Audio: opus, 48000 Hz, stereo, fltp (default)
Now using my approach of extracting the audio
Code: Select all
ffmpeg -i Bodo\ Wartke\ -\ Nicht\ in\ meinem\ Namen\ \(Studio\)-1hBVqgxA_Cg.mkv -codec copy Bodo\ Wartke\ -\ Nicht\ in\ meinem\ Namen\ \(Studio\).opus
ffmpeg version 4.3.1 Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 10.2.0 (GCC)
configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --docdir=/usr/doc/-4.3.1/html --mandir=/usr/man --disable-debug --enable-shared --disable-static --enable-gpl --enable-libaom --enable-version3 --enable-avresample --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-gnutls --enable-libbluray --enable-libcdio --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libmp3lame --enable-opencl --enable-opengl --enable-libopenjpeg --enable-libpulse --enable-libsmbclient --enable-libwavpack --enable-pthreads --enable-postproc --enable-swscale --enable-avfilter --enable-libopus --enable-libspeex --enable-openal --enable-libass --enable-libx264 --enable-libx265 --enable-libgsm --enable-libxvid --enable-libtwolame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libgsm --enable-librtmp
libavutil 56. 51.100 / 56. 51.100
libavcodec 58. 91.100 / 58. 91.100
libavformat 58. 45.100 / 58. 45.100
libavdevice 58. 10.100 / 58. 10.100
libavfilter 7. 85.100 / 7. 85.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 7.100 / 5. 7.100
libswresample 3. 7.100 / 3. 7.100
libpostproc 55. 7.100 / 55. 7.100
Input #0, matroska,webm, from 'Bodo Wartke - Nicht in meinem Namen (Studio)-1hBVqgxA_Cg.mkv':
Metadata:
COMPATIBLE_BRANDS: iso6avc1mp41
MAJOR_BRAND : dash
MINOR_VERSION : 0
ENCODER : Lavf58.29.100
Duration: 00:04:20.02, start: -0.007000, bitrate: 539 kb/s
Stream #0:0: Video: h264 (Main), yuv420p(tv, bt709, progressive), 854x480 [SAR 1:1 DAR 427:240], 25 fps, 25 tbr, 1k tbn, 50 tbc (default)
Metadata:
HANDLER_NAME : VideoHandler
DURATION : 00:04:20.000000000
Stream #0:1(eng): Audio: opus, 48000 Hz, stereo, fltp (default)
Metadata:
DURATION : 00:04:20.021000000
Output #0, opus, to 'Bodo Wartke - Nicht in meinem Namen (Studio).opus':
Metadata:
COMPATIBLE_BRANDS: iso6avc1mp41
MAJOR_BRAND : dash
MINOR_VERSION : 0
encoder : Lavf58.45.100
Stream #0:0(eng): Audio: opus, 48000 Hz, stereo, fltp (default)
Metadata:
DURATION : 00:04:20.021000000
COMPATIBLE_BRANDS: iso6avc1mp41
MAJOR_BRAND : dash
MINOR_VERSION : 0
encoder : Lavf58.45.100
Stream mapping:
Stream #0:1 -> #0:0 (copy)
Press [q] to stop, [?] for help
size= 4475kB time=00:04:20.00 bitrate= 141.0kbits/s speed= 312x
video:0kB audio:4442kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.731012%
and testing the result via file
Code: Select all
guest@porteus:/mnt/sdc2/sound/mp4$ file Bodo\ Wartke\ -\ Nicht\ in\ meinem\ Namen\ \(Studio\).opus
Bodo Wartke - Nicht in meinem Namen (Studio).opus: Ogg data, Opus audio,
guest@porteus:/mnt/sdc2/sound/mp4$ l Bodo\ Wartke\ -\ Nicht\ in\ meinem\ Namen\ \(Studio\).opus
-rwxrwxrwx 1 guest 4582289 2021-01-24 18:10 Bodo Wartke - Nicht in meinem Namen (Studio).opus
and via ffplay
Code: Select all
guest@porteus:/mnt/sdc2/sound/mp4$ ffplay -autoexit -hide_banner -i Bodo\ Wartke\ -\ Nicht\ in\ meinem\ Namen\ \(Studio\).opus
Input #0, ogg, from 'Bodo Wartke - Nicht in meinem Namen (Studio).opus':
Duration: 00:04:20.03, start: 0.007500, bitrate: 140 kb/s
Stream #0:0(eng): Audio: opus, 48000 Hz, stereo, fltp
Metadata:
DURATION : 00:04:20.021000000
COMPATIBLE_BRANDS: iso6avc1mp41
MAJOR_BRAND : dash
MINOR_VERSION : 0
encoder : Lavf58.45.100
14.51 M-A: -0.000 fd= 0 aq= 23KB vq= 0KB sq= 0B f=0/0
my approach seems to work fine -
when there is only one audio stream.
Maybe I should write a reminder about that, might forget about such detail in some months not having extracted any audio.
And I will add the
Code: Select all
ffmpeg -i IF -map 0:a:x OF
x is the audio stream number starting from 0
approach in case of several audio streams.