logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#251 15-06-2019 21:11:16

Anonyme
Invité

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

post 236
post 240
post 250

Tout est OK smile

#252 15-06-2019 21:17:37

enicar
Membre
Lieu : pas ici
Distrib. : sid
Noyau : Linux 6.5.3
(G)UI : openbox
Inscription : 26-08-2010

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

Ah ! Bonne nouvelle. En plus ce n'est pas facile de faire tout cela sans
faire d'essais réels et que ça marche.

Hors ligne

#253 15-06-2019 21:50:51

Anonyme
Invité

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

Attend ..... le post 236, c'est pas bon. Je détaille :

mplayer -vo null -ao null -frames 0 -v "1-SLEEPLESS_IN_SEATTLE-[Language:en,fr,de,it,es,en,en]+SUBVF.mkv"



Terminal:


[patrick@PC1 SLEEPLESS_IN_SEATTLE]$ mplayer -vo null -ao null -frames 0 -v "1-SLEEPLESS_IN_SEATTLE-[Language:en,fr,de,it,es,en,en]+SUBVF.mkv"
MPlayer SVN-r38139 (C) 2000-2019 MPlayer Team
CPU vendor name: GenuineIntel  max cpuid level: 11
CPU: Intel(R) Core(TM) i7 CPU         950  @ 3.07GHz (Family: 6, Model: 26, Stepping: 5)
extended cpuid-level: 8
extended cache-info: 16801856
Detected cache-line size is 64 bytes
CPUflags:  MMX: 1 MMX2: 1 3DNow: 0 3DNowExt: 0 SSE: 1 SSE2: 1 SSE3: 1 SSSE3: 1 SSE4: 1 SSE4.2: 1 AVX: 0
Compiled with runtime CPU detection.
get_path('codecs.conf') -> '/home/patrick/.mplayer/codecs.conf'
Reading optional codecs config file /home/patrick/.mplayer/codecs.conf: No such file or directory
Reading optional codecs config file /etc/mplayer/codecs.conf: 225 audio & 465 video codecs
init_freetype
Using MMX (with tiny bit MMX2) Optimized OnScreenDisplay
get_path('fonts') -> '/home/patrick/.mplayer/fonts'
Configuration: --prefix=/usr --enable-runtime-cpudetection --disable-gui --disable-arts --disable-liblzo --disable-libdv --disable-musepack --disable-esd --disable-mga --disable-ass-internal --disable-cdparanoia --disable-ffmpeg_a --enable-xvmc --enable-radio --enable-radio-capture --enable-smb --language=all --confdir=/etc/mplayer --extra-cflags=  -O2 -pipe -fno-plt -D_FORTIFY_SOURCE=2 --extra-ldflags=-Wl,-O1,--as-needed,-z,relro,-z,now
CommandLine: '-vo' 'null' '-ao' 'null' '-frames' '0' '-v' '1-SLEEPLESS_IN_SEATTLE-[Language:en,fr,de,it,es,en,en]+SUBVF.mkv'
Using nanosleep() timing
get_path('input.conf') -> '/home/patrick/.mplayer/input.conf'
Parsing input config file /home/patrick/.mplayer/input.conf
Input config file /home/patrick/.mplayer/input.conf parsed: 0 binds
get_path('1-SLEEPLESS_IN_SEATTLE-[Language:en,fr,de,it,es,en,en]+SUBVF.mkv.conf') -> '/home/patrick/.mplayer/1-SLEEPLESS_IN_SEATTLE-[Language:en,fr,de,it,es,en,en]+SUBVF.mkv.conf'

Playing 1-SLEEPLESS_IN_SEATTLE-[Language:en,fr,de,it,es,en,en]+SUBVF.mkv.
[file] File size is 1000719 bytes
STREAM: [file] 1-SLEEPLESS_IN_SEATTLE-[Language:en,fr,de,it,es,en,en]+SUBVF.mkv
STREAM: Description: File
STREAM: Author: Albeu
STREAM: Comment: based on the code from ??? (probably Arpi)
libavformat version 58.20.100 (external)
Configuration: --prefix=/usr --extra-cflags='-I/opt/cuda/include -I/usr/include/tensorflow' --extra-ldflags=-L/opt/cuda/lib64 --disable-rpath --enable-gpl --enable-version3 --enable-nonfree --enable-shared --disable-static --disable-stripping --enable-gray --enable-avresample --enable-alsa --enable-avisynth --enable-bzlib --enable-chromaprint --enable-frei0r --enable-gcrypt --enable-gmp --enable-gnutls --enable-iconv --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcelt --enable-libcdio --enable-libcodec2 --enable-libdavs2 --enable-libdc1394 --enable-libfdk-aac --enable-libflite --enable-fontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libiec61883 --enable-libilbc --enable-libjack --enable-libklvanc --enable-libkvazaar --enable-liblensfun --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --disable-libopencv --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-librtmp --enable-libshine --disable-libsmbclient --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvthevc --enable-libsvtav1 --enable-libsvtvp9 --enable-libtensorflow --enable-libtesseract --enable-libtheora --disable-libtls --enable-libtwolame --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxavs2 --enable-libxcb --enable-libxcb-shm --enable-libxcb-xfixes --enable-libxcb-shape --enable-libxvid --enable-libxml2 --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-lzma --enable-decklink --enable-libndi_newtek --enable-libmysofa --enable-openal --enable-opencl --enable-opengl --disable-openssl --enable-sndio --enable-sdl2 --enable-vapoursynth --enable-xlib --enable-zlib --enable-cuda-sdk --enable-cuvid --enable-ffnvcodec --enable-libdrm --enable-libmfx --enable-libnpp --enable-nvdec --enable-nvenc --enable-omx --enable-omx-rpi --enable-rkmpp --enable-v4l2-m2m --enable-vaapi --enable-vdpau
LAVF_check: Matroska / WebM
libavformat file format detected.
st:0 removing common factor 1000000 from timebase
st:1 removing common factor 1000000 from timebase
st:2 removing common factor 1000000 from timebase
st:3 removing common factor 1000000 from timebase
st:4 removing common factor 1000000 from timebase
st:5 removing common factor 1000000 from timebase
st:6 removing common factor 1000000 from timebase
st:7 removing common factor 1000000 from timebase
st:8 removing common factor 1000000 from timebase
st:9 removing common factor 1000000 from timebase
[matroska,webm @ 0x7f20bf98a960]Before avformat_find_stream_info() pos: 8255 bytes read:36659 seeks:2 nb_streams:10
[hevc @ 0x7f20bef2dba0]nal_unit_type: 32(VPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 0x7f20bef2dba0]Decoding VPS
[hevc @ 0x7f20bef2dba0]Main 10 profile bitstream
[hevc @ 0x7f20bef2dba0]nal_unit_type: 33(SPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 0x7f20bef2dba0]Decoding SPS
[hevc @ 0x7f20bef2dba0]Main 10 profile bitstream
[hevc @ 0x7f20bef2dba0]Decoding VUI
[hevc @ 0x7f20bef2dba0]nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 0x7f20bef2dba0]Decoding PPS
[dvdsub @ 0x7f20bef2dba0]palette: 0x101010 0x6e6e6e 0xcbcbcb 0x202020 0xb4b4b4 0x1e1e1e 0x626262 0xd7d7d7 0x808080 0x808080 0x808080 0x808080 0x808080 0x808080 0x808080 0x808080
[dvdsub @ 0x7f20bef2dba0]palette: 0x101010 0x6e6e6e 0xcbcbcb 0x202020 0xb4b4b4 0x1e1e1e 0x626262 0xd7d7d7 0x808080 0x808080 0x808080 0x808080 0x808080 0x808080 0x808080 0x808080
[matroska,webm @ 0x7f20bf98a960]All info found
[matroska,webm @ 0x7f20bf98a960]After avformat_find_stream_info() pos: 59411 bytes read:102195 seeks:2 frames:44
==> Found video stream: 0
======= VIDEO Format ======
  biSize 171
  biWidth 720
  biHeight 576
  biPlanes 1
  biBitCount 0
  biCompression 1129727304='HEVC'
  biSizeImage 0
Unknown extra header dump: [1] [2] [20] [0] [0] [0] [0] [0] [0] [0] [0] [0] [5a] [f0] [0] [fc] [fd] [fa] [fa] [0] [0] [f] [3] [20] [0] [1] [0] [18] [40] [1] [c] [1] [ff] [ff] [2] [20] [0] [0] [3] [0] [0] [3] [0] [0] [3] [0] [0] [3] [0] [5a] [ac] [9] [21] [0] [1] [0] [3e] [42] [1] [1] [2] [20] [0] [0] [3] [0] [0] [3] [0] [0] [3] [0] [0] [3] [0] [5a] [a0] [5] [c2] [0] [90] [71] [3b] [65] [ae] [e4] [25] [92] [e3] [ff] [0] [40] [0] [2d] [1] [0] [0] [3] [0] [1] [0] [0] [3] [0] [19] [60] [5] [de] [51] [0] [0] [98] [96] [80] [0] [13] [12] [d0] [40] [22] [0] [1] [0] [7] [44] [1] [c0] [f3] [c0] [cc] [90]
===========================
[lavf] stream 0: video (hevc), -vid 0
==> Found audio stream: 1
======= WAVE Format =======
Format Tag: 8192 (0x2000)
Channels: 2
Samplerate: 48000
avg byte/sec: 24000
Block align: 1
bits/sample: 0
cbSize: 0
==========================================================================
[lavf] stream 1: audio (ac3), -aid 0, -alang eng, ac3(stereo)
==> Found audio stream: 2
======= WAVE Format =======
Format Tag: 8192 (0x2000)
Channels: 2
Samplerate: 48000
avg byte/sec: 24000
Block align: 1
bits/sample: 0
cbSize: 0
==========================================================================
[lavf] stream 2: audio (ac3), -aid 1, -alang fre, ac3(stereo)
==> Found audio stream: 3
======= WAVE Format =======
Format Tag: 8192 (0x2000)
Channels: 2
Samplerate: 48000
avg byte/sec: 24000
Block align: 1
bits/sample: 0
cbSize: 0
==========================================================================
[lavf] stream 3: audio (ac3), -aid 2, -alang ger, ac3(stereo)
==> Found audio stream: 4
======= WAVE Format =======
Format Tag: 8192 (0x2000)
Channels: 2
Samplerate: 48000
avg byte/sec: 24000
Block align: 1
bits/sample: 0
cbSize: 0
==========================================================================
[lavf] stream 4: audio (ac3), -aid 3, -alang ita, ac3(stereo)
==> Found audio stream: 5
======= WAVE Format =======
Format Tag: 8192 (0x2000)
Channels: 2
Samplerate: 48000
avg byte/sec: 24000
Block align: 1
bits/sample: 0
cbSize: 0
==========================================================================
[lavf] stream 5: audio (ac3), -aid 4, -alang spa, ac3(stereo)
==> Found audio stream: 6
======= WAVE Format =======
Format Tag: 8192 (0x2000)
Channels: 2
Samplerate: 48000
avg byte/sec: 24000
Block align: 1
bits/sample: 0
cbSize: 0
==========================================================================
[lavf] stream 6: audio (ac3), -aid 5, -alang eng, ac3(stereo)
==> Found audio stream: 7
======= WAVE Format =======
Format Tag: 8192 (0x2000)
Channels: 3
Samplerate: 48000
avg byte/sec: 56000
Block align: 1
bits/sample: 0
cbSize: 0
==========================================================================
[lavf] stream 7: audio (ac3), -aid 6, -alang eng, ac3(unknown)
[lavf] stream 8: subtitle (dvdsub), -sid 0, -slang fre
[lavf] stream 9: subtitle (dvdsub), -sid 1, -slang fre
LAVF: 7 audio and 1 video streams found
LAVF: build 3806308
VIDEO:  [HEVC]  720x576  0bpp  25.000 fps    0.0 kbps ( 0.0 kbyte/s)
[V] filefmt:44  fourcc:0x43564548  size:720x576  fps:25.000  ftime:=0.0400
==========================================================================
Forced video codec: ffh264vdpau
Forced video codec: ffmpeg12vdpau
Forced video codec: ffodivxvdpau
Forced video codec: ffwmv3vdpau
Forced video codec: ffvc1vdpau
Forced video codec: ffhevcvdpau
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
libavcodec version 58.35.100 (external)
Configuration: --prefix=/usr --extra-cflags='-I/opt/cuda/include -I/usr/include/tensorflow' --extra-ldflags=-L/opt/cuda/lib64 --disable-rpath --enable-gpl --enable-version3 --enable-nonfree --enable-shared --disable-static --disable-stripping --enable-gray --enable-avresample --enable-alsa --enable-avisynth --enable-bzlib --enable-chromaprint --enable-frei0r --enable-gcrypt --enable-gmp --enable-gnutls --enable-iconv --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcelt --enable-libcdio --enable-libcodec2 --enable-libdavs2 --enable-libdc1394 --enable-libfdk-aac --enable-libflite --enable-fontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libiec61883 --enable-libilbc --enable-libjack --enable-libklvanc --enable-libkvazaar --enable-liblensfun --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --disable-libopencv --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-librtmp --enable-libshine --disable-libsmbclient --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvthevc --enable-libsvtav1 --enable-libsvtvp9 --enable-libtensorflow --enable-libtesseract --enable-libtheora --disable-libtls --enable-libtwolame --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxavs2 --enable-libxcb --enable-libxcb-shm --enable-libxcb-xfixes --enable-libxcb-shape --enable-libxvid --enable-libxml2 --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-lzma --enable-decklink --enable-libndi_newtek --enable-libmysofa --enable-openal --enable-opencl --enable-opengl --disable-openssl --enable-sndio --enable-sdl2 --enable-vapoursynth --enable-xlib --enable-zlib --enable-cuda-sdk --enable-cuvid --enable-ffnvcodec --enable-libdrm --enable-libmfx --enable-libnpp --enable-nvdec --enable-nvenc --enable-omx --enable-omx-rpi --enable-rkmpp --enable-v4l2-m2m --enable-vaapi --enable-vdpau
[hevc @ 0x7f20bef2dba0]nal_unit_type: 32(VPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 0x7f20bef2dba0]Decoding VPS
[hevc @ 0x7f20bef2dba0]Main 10 profile bitstream
[hevc @ 0x7f20bef2dba0]nal_unit_type: 33(SPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 0x7f20bef2dba0]Decoding SPS
[hevc @ 0x7f20bef2dba0]Main 10 profile bitstream
[hevc @ 0x7f20bef2dba0]Decoding VUI
[hevc @ 0x7f20bef2dba0]nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 0x7f20bef2dba0]Decoding PPS
INFO: libavcodec init OK!
Selected video codec: [ffhevcvdpau] vfm: ffmpeg (FFmpeg HEVC / H.265 (VDPAU))
==========================================================================
AutoQ: setting quality to 0.
Clip info:
 creation_time: 2019-06-15T20:10:39.000000Z
 ENCODER: Lavf58.20.100
==========================================================================
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
dec_audio: Allocating 1536000 + 131072 = 1667072 bytes for output buffer.
FFmpeg's libavcodec audio codec
INFO: libavcodec "ac3" init OK!
AUDIO: 48000 Hz, 2 ch, floatle, 192.0 kbit/6.25% (ratio: 24000->384000)
Selected audio codec: [ffac3] afm: ffmpeg (FFmpeg AC-3)
==========================================================================
Building audio filter chain for 48000Hz/2ch/floatle -> 0Hz/0ch/??...
[libaf] Adding filter dummy
[dummy] Was reinitialized: 48000Hz/2ch/floatle
[dummy] Was reinitialized: 48000Hz/2ch/floatle
Trying preferred audio driver 'null', options '[none]'
AO: [null] 48000Hz 2ch floatle (4 bytes per sample)
AO: Description: Null audio output
AO: Author: Tobias Diedrich <ranma+mplayer@tdiedrich.de>
Building audio filter chain for 48000Hz/2ch/floatle -> 48000Hz/2ch/floatle...
[dummy] Was reinitialized: 48000Hz/2ch/floatle
[dummy] Was reinitialized: 48000Hz/2ch/floatle
Starting playback...

Uninit audio filters...
[libaf] Removing filter dummy
Uninit audio: ffmpeg
Uninit video: ffmpeg
vo: x11 uninit called but X11 not initialized..

Exiting... (End of file)
[patrick@PC1 SLEEPLESS_IN_SEATTLE]$
 



Il faut virer le -v ça fera moins de ligne et comme cela on aura le nombre exact de streams qui est de 7 sur mon dvd
avec, je me chope 15 streams ... ce qui est normal mais pas bon.


On vire le -v

Terminal:


[patrick@PC1 SLEEPLESS_IN_SEATTLE]$ mplayer -vo null -ao null -frames 0  "1-SLEEPLESS_IN_SEATTLE-[Language:en,fr,de,it,es,en,en]+SUBVF.mkv"
MPlayer SVN-r38139 (C) 2000-2019 MPlayer Team
225 audio & 465 video codecs

Playing 1-SLEEPLESS_IN_SEATTLE-[Language:en,fr,de,it,es,en,en]+SUBVF.mkv.
libavformat version 58.20.100 (external)
libavformat file format detected.
[lavf] stream 0: video (hevc), -vid 0
[lavf] stream 1: audio (ac3), -aid 0, -alang eng, ac3(stereo)
[lavf] stream 2: audio (ac3), -aid 1, -alang fre, ac3(stereo)
[lavf] stream 3: audio (ac3), -aid 2, -alang ger, ac3(stereo)
[lavf] stream 4: audio (ac3), -aid 3, -alang ita, ac3(stereo)
[lavf] stream 5: audio (ac3), -aid 4, -alang spa, ac3(stereo)
[lavf] stream 6: audio (ac3), -aid 5, -alang eng, ac3(stereo)
[lavf] stream 7: audio (ac3), -aid 6, -alang eng, ac3(unknown)
[lavf] stream 8: subtitle (dvdsub), -sid 0, -slang fre
[lavf] stream 9: subtitle (dvdsub), -sid 1, -slang fre
VIDEO:  [HEVC]  720x576  0bpp  25.000 fps    0.0 kbps ( 0.0 kbyte/s)
==========================================================================
Forced video codec: ffh264vdpau
Forced video codec: ffmpeg12vdpau
Forced video codec: ffodivxvdpau
Forced video codec: ffwmv3vdpau
Forced video codec: ffvc1vdpau
Forced video codec: ffhevcvdpau
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
libavcodec version 58.35.100 (external)
Selected video codec: [ffhevcvdpau] vfm: ffmpeg (FFmpeg HEVC / H.265 (VDPAU))
==========================================================================
Clip info:
 creation_time: 2019-06-15T20:10:39.000000Z
 ENCODER: Lavf58.20.100
==========================================================================
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
AUDIO: 48000 Hz, 2 ch, floatle, 192.0 kbit/6.25% (ratio: 24000->384000)
Selected audio codec: [ffac3] afm: ffmpeg (FFmpeg AC-3)
==========================================================================
AO: [null] 48000Hz 2ch floatle (4 bytes per sample)
Starting playback...


Exiting... (End of file)
[patrick@PC1 SLEEPLESS_IN_SEATTLE]$
 



Je ne sais plus pourquoi ce -v est ici. hmm
Maintenant c'est bon. Il n'y avait pas d'incidence sur le fonctionnement mais c'est mieux que les infos correspondent à la réalité surtout avec un mkv nommé .... -[Language:en,fr,de,it,es,en,en].... smile

enicar a écrit :

Ah ! Bonne nouvelle. En plus ce n'est pas facile de faire tout cela sans
faire d'essais réels et que ça marche.



J'imagine très bien, t'inquiète. smile

Dernière modification par Anonyme (15-06-2019 22:15:18)

#254 15-06-2019 22:13:43

enicar
Membre
Lieu : pas ici
Distrib. : sid
Noyau : Linux 6.5.3
(G)UI : openbox
Inscription : 26-08-2010

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

Anonyme a écrit :

Je ne sais plus pourquoi ce -v est ici. neutral


À vrai dire j'ai eu envie de regarder le man de mplayer, puis j'ai oublié car j'étais plus
concentré sur le reste…

Hors ligne

#255 15-06-2019 22:16:32

Anonyme
Invité

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

enicar a écrit :

Anonyme a écrit :

Je ne sais plus pourquoi ce -v est ici. neutral


À vrai dire j'ai eu envie de regarder le man de mplayer, puis j'ai oublié car j'étais plus
concentré sur le reste…



Ha !!!  mais c'est de ta faute ......................   lol lol lol

Dernière modification par Anonyme (15-06-2019 22:17:55)

#256 15-06-2019 22:28:08

Anonyme
Invité

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

C'est quand même bien dommage que ffmpeg soit si tatillon par rapport a handbrake-cli. J'en parlerai plus tard smile

Dernière modification par Anonyme (15-06-2019 22:29:16)

#257 15-06-2019 22:33:04

enicar
Membre
Lieu : pas ici
Distrib. : sid
Noyau : Linux 6.5.3
(G)UI : openbox
Inscription : 26-08-2010

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

Je poursuis les recherches « d'améliorations ».
Voyons à présent la défintion de la variable MAP_ID_STREAMS.
Nous avons :


MAP_ID_STREAMS=$(lsdvd_x "$i" |grep "Audio:" | \
             sed -E -n -e 's/.*(0x)/\1/p' |sed -e 's/c/1c/g' | \
             awk '/0x/{gsub (/^/,"-map i:")}1')
 


Ici je remarque tout de suite, la succession d'un grep et d'un sed -n.
Je me demande si :


MAP_ID_STREAMS=$(lsdvd_x "$i" |sed -E -n '/Audio:/s/.*(0x)/\1/p' |\
        sed -e 's/c/1c/g' |awk '/0x/{gsub (/^/,"-map i:")}1')
 


fonctionnerait.
Quant au second sed, on le faire faire par awk, comme suit :


MAP_ID_STREAMS=$(lsdvd_x "$i" |sed -E -n '/Audio:/s/.*(0x)/\1/p' |\
        awk '{ gsub(/c/, "1c") }
                /0x/ {gsub (/^/,"-map i:")}1'
)
 



Le « { gsub(/c/, "1c") } » opère inconditionnellement sur « $0 »,
c'est à dire sur tout la ligne en cours de traitement, car gsub
opère sur $0 par défaut.

NOTE : Je viens de prêter attention à une chose que je ne
comprends pas. Le « 1 » à la fin de « { /0x/ {gsub (/^/,"-map i:")}1 »,
il ne sert à rien. Je ne comprends pas que awk ne se plaigne pas.

Dis moi, si il est bien dans ton script ? Ou c'est peut-être moi qui
l'ai rajouté par inadvertance. En tous cas dans le script original
que j'ai chez moi, il y est. C'est aussi dans la définition de
MAP_ID_STREAMS_LPCM…

Dernière modification par enicar (15-06-2019 22:37:05)

Hors ligne

#258 15-06-2019 22:41:24

Anonyme
Invité

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

enicar a écrit :

...

Dis moi, si il est bien dans ton script ? Ou c'est peut-être moi qui
l'ai rajouté par inadvertance. En tous cas dans le script original
que j'ai chez moi, il y est. C'est aussi dans la définition de
MAP_ID_STREAMS_LPCM…



C'est pas toi.

J'ai viré ce 1 sur les deux map_id  et là plus d'audio. Donc il a son utilité.

#259 15-06-2019 22:46:59

enicar
Membre
Lieu : pas ici
Distrib. : sid
Noyau : Linux 6.5.3
(G)UI : openbox
Inscription : 26-08-2010

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

Même traitement pour MAP_ID_STREAMS_LPCM
On avait :


MAP_ID_STREAMS_LPCM=$(lsdvd_x "$i" |grep 'lpcm' | \
            sed -n -e 's/.*\(0x\)/\1/p' | sed -e 's/c/1c/g' | \
            awk '/0x/{gsub (/^/,"-map i:")}1')
 



Que je propose de remplacer par :


MAP_ID_STREAMS_LPCM=$(lsdvd_x "$i" | sed -n -E '/lpcm/s/.*(0x)/\1/p' | \
            awk '{ gsub(/c/, "1c") }
                  /0x/ { gsub (/^/,"-map i:")}1'
)
 


Cette fois, j'ai supprimé le « 1 » suspect.
Tu me diras si ça marche.
Je vais m'arrêter là pour aujourd'hui, mes paupières tombent !
Mais je dois pouvoir encore trouvé des choses à faire… je verrais
cela demain.

Dernière modification par enicar (15-06-2019 22:48:51)

Hors ligne

#260 15-06-2019 22:47:50

enicar
Membre
Lieu : pas ici
Distrib. : sid
Noyau : Linux 6.5.3
(G)UI : openbox
Inscription : 26-08-2010

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

Anonyme a écrit :

J'ai viré ce 1 sur les deux map_id  et là plus d'audio. Donc il a son utilité.


Il ne reste plus qu'à comprendre…

Hors ligne

#261 15-06-2019 22:51:24

Anonyme
Invité

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

Avec ce 1


MAP_ID_STREAMS_LPCM=$(lsdvd -x /dev/sr0 -t 01 |grep 'lpcm' | \
                              sed -n -e 's/.*\(0x\)/\1/p' | sed -e 's/c/1c/g' | \
                              awk '/0x/{gsub (/^/,"-map i:")}1')
 


qui me donne rien, normal, je n'ai pas de stream lpcm


MAP_ID_STREAMS=$(lsdvd -x /dev/sr0 -t 01 |grep "Audio:" | \
                          sed -n -e 's/.*\(0x\)/\1/p' |sed -e 's/c/1c/g' | \
                          awk '/0x/{gsub (/^/,"-map i:")}1')
 



mes 7 streams audio

-map i:0x80 -map i:0x81 -map i:0x82 -map i:0x83 -map i:0x84 -map i:0x85 -map i:0x86




Sans le 1


MAP_ID_STREAMS_LPCM=$(lsdvd -x /dev/sr0 -t 01 |grep 'lpcm' | \
                              sed -n -e 's/.*\(0x\)/\1/p' | sed -e 's/c/1c/g' | \
                              awk '/0x/{gsub (/^/,"-map i:")}')
 



Rien "vide"

 
MAP_ID_STREAMS=$(lsdvd -x /dev/sr0 -t 01 |grep "Audio:" | \
                         sed -n -e 's/.*\(0x\)/\1/p' |sed -e 's/c/1c/g' | \
                         awk '/0x/{gsub (/^/,"-map i:")}')
 



Rien "vide"

#262 15-06-2019 22:53:37

Anonyme
Invité

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

Bonne nuit smile

#263 15-06-2019 22:56:28

enicar
Membre
Lieu : pas ici
Distrib. : sid
Noyau : Linux 6.5.3
(G)UI : openbox
Inscription : 26-08-2010

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

En fait je crois que j'ai compris, j'expliquerai cela demain.

Hors ligne

#264 15-06-2019 23:01:27

Anonyme
Invité

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

enicar a écrit :

En fait je crois que j'ai compris, j'expliquerai cela demain.



Bien. smile

Dernière modification par Anonyme (16-06-2019 08:01:52)

#265 16-06-2019 08:17:57

Anonyme
Invité

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

enicar a écrit :

Même traitement pour MAP_ID_STREAMS_LPCM
On avait :


MAP_ID_STREAMS_LPCM=$(lsdvd_x "$i" |grep 'lpcm' | \
            sed -n -e 's/.*\(0x\)/\1/p' | sed -e 's/c/1c/g' | \
            awk '/0x/{gsub (/^/,"-map i:")}1')
 



Que je propose de remplacer par :


MAP_ID_STREAMS_LPCM=$(lsdvd_x "$i" | sed -n -E '/lpcm/s/.*(0x)/\1/p' | \
            awk '{ gsub(/c/, "1c") }
                  /0x/ { gsub (/^/,"-map i:")}1'
)
 


Cette fois, j'ai supprimé le « 1 » suspect.
Tu me diras si ça marche.
Je vais m'arrêter là pour aujourd'hui, mes paupières tombent !
Mais je dois pouvoir encore trouvé des choses à faire… je verrais
cela demain.



Cette amélioration fonctione. wink

echo $MAP_ID_STREAMS_LPCM



-map i:0xa0




INPUT :


Input #0, mpeg, from '/home/patrick/Desktop/DE_PALMAS/1-DE_PALMAS.vob':
  Duration: 00:09:01.36, start: 0.060000, bitrate: 7493 kb/s
    Stream #0:0[0x1e0]: Video: mpeg2video (Main), 1 reference frame, yuv420p(tv, bt470bg, bottom first, left), 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:1[0x81]: Audio: ac3, 48000 Hz, 5.1(side), fltp, 448 kb/s
    Stream #0:2[0xa0]: Audio: pcm_dvd, 48000 Hz, stereo, s16, 1536 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (mpeg2video (native) -> h264 (libx264))
  Stream #0:2 -> #0:1 (pcm_dvd (native) -> pcm_s16be (native))
 




OUTPUT:


Output #0, matroska, to '/home/patrick/Desktop/DE_PALMAS/1-DE_PALMAS.mkv':
  Metadata:
    title           : DE_PALMAS
    encoder         : Lavf58.20.100
    Stream #0:0: Video: h264 (libx264), 1 reference frame (H264 / 0x34363248), yuv420p(left), 720x576 [SAR 64:45 DAR 16:9], q=0-40, 2048 kb/s, 25 fps, 1k tbn, 25 tbc
    Metadata:
      encoder         : Lavc58.35.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 2048000/0/2048000 buffer size: 5000000 vbv_delay: -1
    Stream #0:1(und): Audio: pcm_s16be ([255][255][255][255] / 0xFFFFFFFF), 48000 Hz, stereo, s16, 1536 kb/s
    Metadata:
      title           : lpcm(stereo)
      encoder         : Lavc58.35.100 pcm_s16be
 

#266 16-06-2019 08:22:36

Anonyme
Invité

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

@enicar

bonjour, je mis quelques explications sur ce que fait le script à mon post 1 smile
https://debian-facile.org/viewtopic.php … 59#p301059

Dernière modification par Anonyme (16-06-2019 08:23:40)

#267 16-06-2019 08:30:40

enicar
Membre
Lieu : pas ici
Distrib. : sid
Noyau : Linux 6.5.3
(G)UI : openbox
Inscription : 26-08-2010

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

Bonjour,

À propos de ce « 1 » mystérieux. J'ai remarqué que dans la commande


awk '{ gsub(/c/, "1c") }
       /0x/ { gsub (/^/,"-map i:")}1'
)
 


Il n'y a pas de commande « print » pour afficher quoi que ce soit.

L'action par défaut de awk est d'afficher « $0 ». Le « 1 » derrière le
« } » est interprété par awk comme une condition toujours vraie. Et
awk exécute alors son action par défaut : « { print $0 } » (qu'on peut
abréger en « { print } »).

Ce qui fait que le script précédent est équivalent à :


awk '{ gsub(/c/, "1c") }
       /0x/ { gsub (/^/,"-map i:")}
       { print $0 }'
)
 


Je préfère la seconde écriture, c'est quand même plus claire.
La première est réservée aux sysadmins pressés.

Hors ligne

#268 16-06-2019 08:33:31

enicar
Membre
Lieu : pas ici
Distrib. : sid
Noyau : Linux 6.5.3
(G)UI : openbox
Inscription : 26-08-2010

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

Anonyme a écrit :

@enicar

bonjour, je mis quelques explications sur ce que fait le script à mon post 1 smile
https://debian-facile.org/viewtopic.php … 59#p301059



Lu smile

Hors ligne

#269 16-06-2019 09:00:55

enicar
Membre
Lieu : pas ici
Distrib. : sid
Noyau : Linux 6.5.3
(G)UI : openbox
Inscription : 26-08-2010

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

Bon, on passe à la définition de SIDFR. Nous avons :


SIDFR=$(lsdvd_x "$i" | grep "Subtitle:" | grep  "Language: fr" | \
    awk '{print $2}' | sed s'/.$//' | \
    awk 'BEGIN { RS="[^0-9]"; OFS=""; ORS=""; } {if(length($0)) {print ($0-1);}print RT}')
 


Je propose :


SIDFR=$(lsdvd_x "$i" | \
    awk '/Subtitle/ && /Langage: fr/ { sub(/.$/ ,"", $2); print $2 }' | \
    awk 'BEGIN { RS="[^0-9]"; OFS=""; ORS=""; } {if(length($0)) {print ($0-1);}print RT}')
 



J'ai juste remplacé :


grep "Subtitle:" | grep  "Language: fr" | \
    awk '{print $2}' | sed s'/.$//' | \
 


Par une seule commande awk. Les deux grep sont passés dans la partie
test de l'action de awk. C'est à dire que :


grep "Subtitle:" | grep  "Language: fr" awk '{print $2}'
 


devient :


awk '/Subtitle/ && /Langage: fr/ {  print $2 }'
 


Ensuite la commande « sed 's/.$//' » peut être mis dans la commande
awk, juste avant d'afficher le champ « $2 », puisque le sed opère sur
toutes les lignes.
Donc la commande :


awk '/Subtitle/ && /Langage: fr/ {  print $2 }' |sed 's/.$//'
 


devient :


awk '/Subtitle/ && /Langage: fr/ { sub(/.$/ ,"", $2); print $2 }'
 

Hors ligne

#270 16-06-2019 11:30:25

enicar
Membre
Lieu : pas ici
Distrib. : sid
Noyau : Linux 6.5.3
(G)UI : openbox
Inscription : 26-08-2010

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

Bon je reviens sur le « 1 » du post #267.

Si on était sûr que toute les lignes renvoyés par


lsdvd_x "$i" | sed -n -E '/lpcm/s/.*(0x)/\1/p'
 


comportent toutes la chaîne « 0x ». On pourrait transformer :


awk '{ gsub(/c/, "1c") }
       /0x/ { gsub (/^/,"-map i:")}1'
)
 


en


awk '{ gsub(/c/, "1c") }
       /0x/ { gsub (/^/,"-map i:"); print $0 }'
)
 


J'ai juste rentré le « « print $0 » dans l'action. C'est pour
cela que cette façon de faire est moins générale.

Hors ligne

#271 16-06-2019 17:54:06

Anonyme
Invité

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

Je vérifie mais c'est sùr que 0x est général.

Peux tu me poster ton script que je continue les tests avec celui-ci ?

#272 16-06-2019 18:00:16

enicar
Membre
Lieu : pas ici
Distrib. : sid
Noyau : Linux 6.5.3
(G)UI : openbox
Inscription : 26-08-2010

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

@Anonyme tu me diras quand tu auras testé toute mes propositions.
j'ai fait une version du script sans accélérations (tout est fait par le cpu).

J'ai un peu modifier l'ordre des opérations, pour rendre les choses plus
lisibles. Comme ça dans la grande boucle, il y a quatre parties :

  • les initialisations (c'est à dire remise à zéros des caches, et détection
    de la durée de la piste),

  • positionnement de toutes les variables
    (les langues, et les variables qui servent à ffmpeg et autres)

  • dump de la piste avec mplayer

  • encodage avec ffmpeg

Hors ligne

#273 16-06-2019 18:01:33

enicar
Membre
Lieu : pas ici
Distrib. : sid
Noyau : Linux 6.5.3
(G)UI : openbox
Inscription : 26-08-2010

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

Anonyme a écrit :

Peux tu me poster ton script que je continue les tests avec celui-ci ?


Bon il faut que j'intègre les modifications que je faites dans celui sans l'usage du gpu
nvidia pour te le passer.

Hors ligne

#274 16-06-2019 18:13:53

enicar
Membre
Lieu : pas ici
Distrib. : sid
Noyau : Linux 6.5.3
(G)UI : openbox
Inscription : 26-08-2010

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

Bon, j'ai fait un merge vite fait (avec le super outil d'emacs : ediff).
Voilà le résultat :


#!/bin/bash

PATH=$PATH:/sbin:/usr/sbin

#### Anonyme ###############################################################################
# 22-03-2019
# Archlinux
# MPlayer SVN-r38101
# ffmpeg version n4.1.1
# lsdvd 0.17
# ogmtools v1.5 (dvdxchap)
# mkvtoolnix-cli 32.0.0-1 (mkvmerge)
# mencoder-38125-5
##############################################################################################

declare -a MPLAYER_IDENTIFY
declare -a LSDVD_X

menage () {
    rm -f "$FOLDER"/*.idx
    rm -f "$FOLDER"/*.sub
    rm -f "$FOLDER/$i-$TITLE+CHAPTERS.mkv"
}

mplayer_identify () {
    if [[  "${#MPLAYER_IDENTIFY[@]}" -eq 0 ]]; then
        mapfile MPLAYER_IDENTIFY < \
                <(mplayer -noconfig all -nocache -vo null -ao null -frames 0 \
                          -identify -dvd-device "$DEVICE" dvd://"$1" 2>/dev/null)
    fi
    echo -n "${MPLAYER_IDENTIFY[@]}"
}

awk_lang () {
    local ilang="$1"
    local olang="$2"
    awk "/language: $ilang/ && /format:/ \
        {printf \"-metadata:s:a:\"\$3\" language=$olang -metadata:s:a:\"\$3\" title=\"\$5\$6\" \"}"

}

awk_lpcm () {
    local ilang="$1"
    local olang="$2"
    awk "/language: $ilang/ && /format: lpcm/ \
        {printf \"-metadata:s:a:0 language=$olang -metadata:s:a:0 title=\"\$5\$6\" \"}"

}

lsdvd_x () {
    if [[ "${#LSDVD_X[@]}" -eq 0  ]]; then
        mapfile LSDVD_X < <(lsdvd -x "$DEVICE" -t "$1" 2> /dev/null)
    fi
    echo -n "${LSDVD_X[@]}"
}

## CONDITION : UN SEUL DVD-VIDÉO
mapfile -t  BLKID < <(blkid /dev/sr* |sed -E 's/^([^:]+).*/\1/')

if [[ "${#BLKID[@]}" -eq "1" ]] ; then
    echo "Proceed..."
else
    echo "Aucun DVD-Vidéo ou 2 DVD-Vidéos/DVD-ROM ... dans différents lecteurs ?"
    exit 0
fi

DEVICE=${BLKID[0]}
unset BLKID

## LABEL DU DVD-VIDÉO & NOMBRE TOTAL DE TITRES SUR CELUI-CI
TITLE=$(lsdvd "$DEVICE" | awk 'NR == 1 {print $3; exit}')
TITLE_COUNT=$(lsdvd "$DEVICE" | grep -c ^'Title: ')


DIR=$(xdg-user-dir DESKTOP)
FOLDER="$DIR/$TITLE"


if [ ! -d "$FOLDER" ]; then
    echo "$FOLDER n'existe pas !"
    echo "Création Du Dossier $FOLDER"
    mkdir -p "$FOLDER"
fi

for (( i=1; i<=TITLE_COUNT; i++ ))
do
    MPLAYER_IDENTIFY=()
    LSDVD_X=()
    ## TITRES D'UNE DURÉE DE PLUS DE .... SECONDES [ ICI, 1200 SECONDES = 20 MINUTES]
    LENGTH=$(mplayer_identify "$i" | grep ID_LENGTH | sed -E 's/.*=([0-9]*)/\1/' | sed 's/\..*//')
    LIMIT=1200
    [[ "$LENGTH" -le "$LIMIT" ]] && continue

## METADATAS DIVERS [À COMPLETER AU CAS OÙ IL MANQUERAIT QUELQUES LANGUES]
## https://fr.wikipedia.org/wiki/Liste_des_codes_ISO_639-1
    FR=$(mplayer_identify "$i" | awk_lang fr fra)
    FR_LPCM=$(mplayer_identify "$i" | awk_lpcm fr fra)
    EN=$(mplayer_identify "$i" | awk_lang en en)
    EN_LPCM=$(mplayer_identify "$i" | awk_lpcm en en)
    DE=$(mplayer_identify "$i" | awk_lang de ger)
    DE_LPCM=$(mplayer_identify "$i" | awk_lpcm de ger)
    IT=$(mplayer_identify "$i" | awk_lang it ita)
    IT_LPCM=$(mplayer_identify "$i" | awk_lpcm it ita)
    ES=$(mplayer_identify "$i" |awk_lang es spa)
    ES_LPCM=$(mplayer_identify "$i" |awk_lpcm es spa)
    NL=$(mplayer_identify "$i" |awk_lang nl nld)
    NL_LPCM=$(mplayer_identify "$i" |awk_lpcm nl nld)
    HE=$(mplayer_identify "$i" |awk_lang he heb)
    HE_LPCM=$(mplayer_identify "$i" |awk_lpcm he heb)
    HU=$(mplayer_identify "$i" |awk_lang hu hun)
    HU_LPCM=$(mplayer_identify "$i" |awk_lpcm hu hun)
    PL=$(mplayer_identify "$i" |awk_lang pl pol)
    PL_LPCM=$(mplayer_identify "$i" |awk_lpcm pl pol)
    CS=$(mplayer_identify "$i" |awk_lang cs cze)
    CS_LPCM=$(mplayer_identify "$i" |awk_lpcm cs cze)
    JA=$(mplayer_identify "$i" |awk_lang ja jpn)
    JA_LPCM=$(mplayer_identify "$i" |awk_lpcm ja jpn)
    SV=$(mplayer_identify "$i" |awk_lang sv swe)
    SV_LPCM=$(mplayer_identify "$i" |awk_lpcm sv swe)
    UNKNOWN=$(mplayer_identify "$i" |awk_lang unknown und)
    UNKNOWN_LPCM=$(mplayer_identify "$i" |awk_lpcm unknown und)
    EMPTY_LANG=$(mplayer_identify "$i" |awk_lang ' aid:' und)
    EMPTY_LANG_LPCM=$(mplayer_identify "$i" |awk_lpcm ' aid:' und)

    TAGS_ID_STREAMS="${FR}${EN}${DE}${IT}${ES}${NL}${HE}${HU}${PL}${CS}${JA}${SV}${UNKNOWN}${EMPTY_LANG}"
    TAGS_ID_STREAMS_LPCM="${FR_LPCM}${EN_LPCM}${DE_LPCM}${IT_LPCM}${ES_LPCM}${NL_LPCM}${HE_LPCM}${HU_LPCM}${PL_LPCM}${CS_LPCM}${JA_LPCM}${SV_LPCM}${UNKNOWN_LPCM}${EMPTY_LANG_LPCM}"

## DISNEY A-R-C-C-O-S
#mplayer dvdnav://"$i" -dvd-device "$DEVICE" -dumpstream -dumpfile "$i-$TITLE.vob"

    COUNT_LPCM=$(lsdvd_x "$i" |grep -c 'lpcm')
    COUNT_AC3_DTS_MPEG1=$(lsdvd_x "$i" | grep -c -E 'ac3,|dts,|mpeg1,')

    # MAP_ID_STREAMS=$(lsdvd_x "$i" |grep "Audio:" | \
    #                     sed -E -n -e 's/.*(0x)/\1/p' |sed -e 's/c/1c/g' | \
    #                     awk '/0x/{gsub (/^/,"-map i:")}1')
    MAP_ID_STREAMS=$(lsdvd_x "$i" |sed -E -n '/Audio:/s/.*(0x)/\1/p' | \
                         awk '{ gsub(/c/, "1c") }
                              /0x/ {gsub (/^/,"-map i:")}
                              { print $0 }'
)

    # MAP_ID_STREAMS_LPCM=$(lsdvd_x "$i" |grep 'lpcm' | \
    #                         sed -n -e 's/.*\(0x\)/\1/p' | sed -e 's/c/1c/g' | \
    #                         awk '/0x/{gsub (/^/,"-map i:")}1')
    MAP_ID_STREAMS_LPCM=$(lsdvd_x "$i" | sed -n -E '/lpcm/s/.*(0x)/\1/p' | \
                              awk '{ gsub(/c/, "1c") }
                                   /0x/ { gsub (/^/,"-map i:")}
                                   { print $0 }'
)

    # SIDFR=$(lsdvd_x "$i" | grep "Subtitle:" | grep  "Language: fr" | \
    #             awk '{print $2}' | sed s'/.$//' | \
    #             awk 'BEGIN { RS="[^0-9]"; OFS=""; ORS=""; } {if(length($0)) {print ($0-1);}print RT}')

    SIDFR=$(lsdvd_x "$i" |awk '/Subtitle:/ && /Language: fr/ { sub(/.$/ ,"", $2); print $2 }' | \
                awk 'BEGIN { RS="[^0-9]"; OFS=""; ORS=""; } {if(length($0)) {print ($0-1);}print RT}')
    COUNT_SID_FR=$(mplayer_identify "$i" |grep "subtitle ( sid ):" | \
                       grep -c "language: fr")

    # RATIO=$(lsdvd_x "$i" | head -3 | grep "Aspect ratio:" | \
    #             awk '{print $11}' | sed '$ s/.$//' | sed 's/\//:/')

    # RATIO=$(lsdvd_x "$i" |awk 'NR <= 3 && /Aspect ratio:/ {sub(/\//, ":", $11); print $11}' | \
    #                       sed '$ s/.$//')

    RATIO=$(lsdvd_x "$i" | \
                awk 'NR <= 3 && /Aspect ratio:/ {sub(/\//, ":", $11); arr[++max]=$11}
                          END { sub(/.$/, "", arr[max]);
                                for(i=1; i <= max; i++)
                                    print arr[i]}'
)

    # INFO_AC3_DTS_MPEG1=$(lsdvd_x "$i" |awk '/ac3,|dts,|mpeg1,/  {printf ""$4","}'  | \
    #                         sed -e 's/,*$//g')
    INFO_AC3_DTS_MPEG1=$(lsdvd_x "$i" | \
                awk '/ac3,|dts,|mpeg1,/  { x = x $4 ","} END { sub(/,*$/, "", x); print x }')
    INFO_LPCM=$(lsdvd_x "$i" | awk '/lpcm/ { print $4 }')

#CROP=$(ffmpeg -i "$FOLDER/$i-$TITLE.vob" -ss 60 -t 15 -t 1 -vf cropdetect -f null - 2>&1 | awk '/crop/ { print $NF }' | tail -1)

    mplayer -noconfig all  -dvd-device "$DEVICE" dvd://"$i" \
            -nocache -dumpstream -dumpfile "$FOLDER/$i-$TITLE.vob"

## ENCODAGE
## GPU
## FILMS
## AC3 & DTS & MPEG1
## SOUS-TITRAGE(S) VF
    if [[ "$COUNT_LPCM" -eq "0" ]] && \
        [[ "$COUNT_AC3_DTS_MPEG1" -ge "1" ]] && \
        [[ "$COUNT_SID_FR" -ge "1" ]]
    then
        ffmpeg -hwaccel auto -c:v mpeg2_cuvid -i "$FOLDER/$i-$TITLE.vob" \
            -map 0:v -metadata title="$TITLE" \
            -c:v h264_nvenc -preset slow -profile:v high -level 4.2 \
            -loglevel repeat+verbose  ${MAP_ID_STREAMS} \
            -c:a copy $TAGS_ID_STREAMS -movflags +faststart -qmin 18 -qmax 23 \
            -filter:v hue=b=0.1:s=0.7,hqdn3d=1.5:1.5:4:4,unsharp=luma_msize_x=5:luma_msize_y=5:luma_amount=0.5,noise=c0s=2:c1s=2:c2s=2:c0f=a+t \
            -y "$FOLDER/$i-$TITLE.mkv"


        rm -f "$FOLDER/$i-$TITLE.vob"
        dvdxchap -t  "$i" "$DEVICE" > "$FOLDER/$i-$TITLE-CHAPTERS.txt"
        mkvmerge "$FOLDER/$i-$TITLE.mkv" --chapters "$FOLDER/$i-$TITLE-CHAPTERS.txt"  \
                -o "$FOLDER/$i-$TITLE+CHAPTERS.mkv"

        rm -f "$FOLDER/$i-$TITLE-CHAPTERS.txt"
        rm -f "$FOLDER/$i-$TITLE.mkv"

        for n in $SIDFR; do
            mencoder -dvd-device "$DEVICE" "dvd://$i" \
                -nosound -ovc copy -force-avi-aspect "$RATIO"  \
                -o /dev/null -ifo "/run/media/$USER/$TITLE/VIDEO_TS/VTS_01_0.IFO"  \
                -sid "$n" -vobsubout "$FOLDER/$i-vobsubs-fr" -vobsuboutindex "$n"
        done
        mkvmerge "$FOLDER/$i-$TITLE+CHAPTERS.mkv" -a fre --default-language fr \
                "$FOLDER"/*.idx \
                -o "$FOLDER/$i-$TITLE-[Language:$INFO_AC3_DTS_MPEG1]+SUBVF.mkv"


        menage



    ## ENCODAGE
    ## GPU
    ## CONCERTS LIVE
    ## LPCM (ON GARDE QUE LA PISTE LPCM)
    ## PAS DE SOUS-TITRAGE

    elif [[ "$COUNT_LPCM" -ge "1" ]] && \
        [[ "$COUNT_AC3_DTS_MPEG1" -ge "0" ]] && \
        [[ "$COUNT_SID_FR" -eq "0" ]]
    then
        ffmpeg -hwaccel auto -c:v mpeg2_cuvid -i "$FOLDER/$i-$TITLE.vob" \
            -map 0:v -metadata title="$TITLE" -c:v h264_nvenc -preset hq \
            -profile:v high -level 4.2 -loglevel repeat+verbose  \
            ${MAP_ID_STREAMS_LPCM} -acodec pcm_s16be $TAGS_ID_STREAMS_LPCM \
            -movflags +faststart -qmin 18 -qmax 23 -y "$FOLDER/$i-$TITLE.mkv"

        rm -f "$FOLDER/$i-$TITLE.vob"
        dvdxchap -t  "$i" "$DEVICE" > "$FOLDER/$i-$TITLE-CHAPTERS.txt"
        mkvmerge "$FOLDER/$i-$TITLE.mkv" --chapters "$FOLDER/$i-$TITLE-CHAPTERS.txt" \
                -o "$FOLDER/$i-$TITLE-[Language:$INFO_LPCM].mkv"

        rm -f "$FOLDER/$i-$TITLE.mkv"
        rm -f "$FOLDER/$i-$TITLE-CHAPTERS.txt"



    ## ENCODAGE
    ## GPU
    ## CONCERTS LIVE
    ## LPCM (ON GARDE QUE LA PISTE LPCM)
    ## SOUS-TITRAGE(S) VF

    elif [[ "$COUNT_LPCM" -ge "1" ]] && \
            [[ "$COUNT_AC3_DTS_MPEG1" -ge "0" ]] && \
            [[ "$COUNT_SID_FR" -ge "1" ]]
    then
        ffmpeg -hwaccel cuvid -c:v mpeg2_cuvid -i "$FOLDER/$i-$TITLE.vob" \
            -map 0:v -metadata title="$TITLE" \
            -c:v h264_nvenc -preset hq -profile:v high -level 4.2 \
            -loglevel repeat+verbose  ${MAP_ID_STREAMS_LPCM} \
            -acodec pcm_s16be $TAGS_ID_STREAMS_LPCM -movflags +faststart \
            -qmin 18 -qmax 23 -y "$FOLDER/$i-$TITLE.mkv"

        rm -f "$FOLDER/$i-$TITLE.vob"

        dvdxchap -t  "$FOLDER/$i" "$DEVICE" > "$FOLDER/$i-$TITLE-CHAPTERS.txt"
        mkvmerge "$FOLDER/$i-$TITLE.mkv" --chapters "$FOLDER/$i-$TITLE-CHAPTERS.txt" \
                -o "$FOLDER/$i-$TITLE+CHAPTERS.mkv"

        rm -f "$FOLDER/$i-$TITLE-CHAPTERS.txt"
        rm -f "$FOLDER/$i-$TITLE.mkv"

        for n in $SIDFR; do
            mencoder -dvd-device "$DEVICE" dvd://"$i" \
                    -nosound -ovc copy -force-avi-aspect "$RATIO" \
                    -o /dev/null -ifo "/run/media/$USER/$TITLE/VIDEO_TS/VTS_01_0.IFO" \
                    -sid "$n" -vobsubout "$FOLDER/$i-vobsubs-fr" -vobsuboutindex "$n"
        done

        mkvmerge "$FOLDER/$i-$TITLE+CHAPTERS.mkv" \
                -a fre --default-language fr "$FOLDER"/*.idx \
                -o "$FOLDER/$i-$TITLE-[Language:$INFO_LPCM]+SUBVF.mkv"


        menage

    ## LA PETITE MAISON DANS LA PRAIRIE
    elif [[ "$COUNT_LPCM" -eq "0" ]] &&
            [[ "$COUNT_AC3_DTS_MPEG1" -ge "1" ]] &&
            [[ "$COUNT_SID_FR" -eq "0" ]]
    then
        ffmpeg -hwaccel auto -c:v mpeg2_cuvid \
            -i "$FOLDER/$i-$TITLE.vob" -map 0:v -metadata title="$TITLE" \
            -c:v h264_nvenc -preset hq -profile:v high -level 4.2\
            -loglevel repeat+verbose ${MAP_ID_STREAMS} \
            -c:a copy ${TAGS_ID_STREAMS} -movflags +faststart \
            -qmin 18 -qmax 23 -y "$FOLDER/$i-$TITLE.mkv"

        rm -f "$FOLDER/$i-$TITLE.vob"

        dvdxchap -t  "$i" "$DEVICE" > "$FOLDER/$i-$TITLE-CHAPTERS.txt"
        mkvmerge "$FOLDER/$i-$TITLE.mkv" \
                --chapters "$FOLDER/$i-$TITLE-CHAPTERS.txt" -o \
                "$FOLDER/$i-$TITLE-[Language:$INFO_AC3_DTS_MPEG1].mkv"

        rm -f "$FOLDER/$i-$TITLE-CHAPTERS.txt"
        rm -f "$FOLDER/$i-$TITLE.mkv"

    fi
done
 


J'ai aussi effacé quelques lignes en commentaires, j'ai tout mis en
forme correctement. Il reste à espérer que je n'ai pas laissé
d'erreurs. Il y a peut être une modification que je n'ai pas intégré
pour la variable COUNT_SID_FR. Il me semble t'avoir proposé un truc
à base de awk à la place des deux greps… Ce n'est pas grave
je peux le rmettre si tu veux.

EDIT : Script modifié. Cette fois ça devrait
fonctionnait.

Dernière modification par enicar (21-06-2019 16:35:28)

Hors ligne

#275 16-06-2019 18:21:31

Anonyme
Invité

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

Merci, je fais les tests sur celui-ci "post 274" avec mes 6 DVD de référence. Tu pourras mettre la variable COUNT_SID_FR après. Si c'est celle du post 269, elle fonctionne.

Dernière modification par Anonyme (16-06-2019 18:21:44)

Pied de page des forums