Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

inclure sub et idx dans mp4

3 réponses
Avatar
Christophe PEREZ
Bonjour,

J'ai un certain nombre de vidéos, donc les sous-titres sont "externes"
au fichier vidéo (.sub et .idx, mais je ne sais absolument plus leur
provenance). Mais, ce format de vidéo n'est pas lisible sur ma TV
connectée.
Je les converti donc Í  l'aide de ffmpeg par :
ffmpeg -i video.avi -c copy video.mp4
Ils sont alors visualisables sur la TV (par le biais du serveur
multimédia), mais, les sous-titres n'y sont évidemment pas, et je
n'arrive pas Í  les inclure (interne ou externe) avec ce nouveau format
de vidéo.

J'ai essayé en rajoutant "-i video.sub -i video.idx -c:s mov_text" Í  ma
commande ffmpeg, mais il se plaint de ne pouvoir convertir que du texte
en texte, ou du bitmap en bitmap, ce qui ne m'éclaire pas beaucoup.
Et sans le "-c:s mov_text" la vidéo est bien générée, mais aucun
sous-titre apparent.

J'ai tenté de convertir le sub+idx en srt, Í  l'aide de sub2srt, mais il
m'a répondu qu'il ne reconnaissait pas le format.

Dans l'absolu, je préfèrerais un "tout en un" avec les sous-titres
inclus dans la vidéo, mais si je dois conserver des fichiers externes
ça restera acceptable.

Si quelqu'un a une piste...

Merci d'avance.

Les fichiers existants actuels :
$ mediainfo video.*
General
Complete name : video.avi
Format : AVI
Format/Info : Audio Video Interleave
File size : 550 MiB
Duration : 55 min 17 s
Overall bit rate mode : Variable
Overall bit rate : 1 390 kb/s
Writing application : MEncoder SVN-r34643
Writing library : MPlayer

Video
ID : 0
Format : MPEG-4 Visual
Format profile : Advanced Simple@L5
Format settings : BVOP1
Format settings, BVOP : 1
Format settings, QPel : No
Format settings, GMC : No warppoints
Format settings, Matrix : Default (H.263)
Muxing mode : Packed bitstream
Codec ID : XVID
Codec ID/Hint : XviD
Duration : 55 min 17 s
Bit rate : 1 239 kb/s
Width : 624 pixels
Height : 352 pixels
Display aspect ratio : 16:9
Frame rate : 23.976 (24000/1001) FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Compression mode : Lossy
Bits/(Pixel*Frame) : 0.235
Stream size : 490 MiB (89%)
Writing library : XviD 1.2.1 (UTC 2008-12-04)

Audio
ID : 1
Format : MPEG Audio
Format version : Version 1
Format profile : Layer 3
Format settings : Joint stereo / MS Stereo
Codec ID : 55
Codec ID/Hint : MP3
Duration : 55 min 17 s
Bit rate mode : Variable
Bit rate : 144 kb/s
Channel(s) : 2 channels
Sampling rate : 48.0 kHz
Frame rate : 41.667 FPS (1152 SPF)
Compression mode : Lossy
Stream size : 55.0 MiB (10%)
Alignment : Aligned on interleaves
Interleave, duration : 24 ms (0.58 video frame)
Interleave, preload duration : 458 ms
Writing library : LAME3.98
Encoding settings : -m j -V 4 -q 3 -lowpass 17.5
--abr 144

General
Complete name : video.idx
File size : 1.08 KiB

General
Complete name : video.sub
Format : MPEG-PS
File size : 2.00 KiB
FileExtension_Invalid : mpeg mpg m2p vob vro pss evo

Text
ID : 189 (0xBD)-32 (0x20)
Format : RLE
Format/Info : Run-length encoding
Muxing mode : DVD-Video

3 réponses

Avatar
Nicolas George
Christophe PEREZ , dans le message
, a écrit :
J'ai essayé en rajoutant "-i video.sub -i video.idx -c:s mov_text" Í  ma
commande ffmpeg, mais il se plaint de ne pouvoir convertir que du texte
en texte, ou du bitmap en bitmap, ce qui ne m'éclaire pas beaucoup.
Et sans le "-c:s mov_text" la vidéo est bien générée, mais aucun
sous-titre apparent.

Le format MP4 est pourri, il ne supporte qu'une petite poignée de
fonctionnalités intéressantes.
J'ai essayé en rajoutant "-i video.sub -i video.idx -c:s mov_text" Í  ma
commande ffmpeg, mais il se plaint de ne pouvoir convertir que du texte
en texte, ou du bitmap en bitmap, ce qui ne m'éclaire pas beaucoup.

Le format Vobsub (que tu appelles sub+idx) stocke les sous-titres comme
images. Pour le convertir en texte, il faudrait de la reconnaissance de
caractères. Pas impossible, mais en aucun cas 100% automatique.
Dans l'absolu, je préfèrerais un "tout en un" avec les sous-titres
inclus dans la vidéo, mais si je dois conserver des fichiers externes
ça restera acceptable.

Tu t'épargneras des cheveux blancs en incrustant les sous-titres directement
dans la vidéo. Regarde dans la doc de ffmpeg sur -filter_complex, c'est
expliqué.
Les fichiers existants actuels :
$ mediainfo video.*

La sortie de ffmpeg/ffprobe est plus parlante.
General
Complete name : video.avi
Format : AVI
Format/Info : Audio Video Interleave
File size : 550 MiB
Duration : 55 min 17 s
Overall bit rate mode : Variable
Overall bit rate : 1 390 kb/s
Writing application : MEncoder SVN-r34643
Writing library : MPlayer
Video
ID : 0
Format : MPEG-4 Visual
Format profile : Advanced
Format settings : BVOP1
Format settings, BVOP : 1
Format settings, QPel : No
Format settings, GMC : No warppoints
Format settings, Matrix : Default (H.263)
Muxing mode : Packed bitstream
Codec ID : XVID
Codec ID/Hint : XviD
Duration : 55 min 17 s
Bit rate : 1 239 kb/s
Width : 624 pixels
Height : 352 pixels
Display aspect ratio : 16:9
Frame rate : 23.976 (24000/1001) FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Compression mode : Lossy
Bits/(Pixel*Frame) : 0.235
Stream size : 490 MiB (89%)
Writing library : XviD 1.2.1 (UTC 2008-12-04)
Audio
ID : 1
Format : MPEG Audio
Format version : Version 1
Format profile : Layer 3
Format settings : Joint stereo / MS Stereo
Codec ID : 55
Codec ID/Hint : MP3
Duration : 55 min 17 s
Bit rate mode : Variable
Bit rate : 144 kb/s
Channel(s) : 2 channels
Sampling rate : 48.0 kHz
Frame rate : 41.667 FPS (1152 SPF)
Compression mode : Lossy
Stream size : 55.0 MiB (10%)
Alignment : Aligned on interleaves
Interleave, duration : 24 ms (0.58 video frame)
Interleave, preload duration : 458 ms
Writing library : LAME3.98
Encoding settings : -m j -V 4 -q 3 -lowpass 17.5
--abr 144
General
Complete name : video.idx
File size : 1.08 KiB
General
Complete name : video.sub
Format : MPEG-PS
File size : 2.00 KiB
FileExtension_Invalid : mpeg mpg m2p vob vro pss evo
Text
ID : 189 (0xBD)-32 (0x20)
Format : RLE
Format/Info : Run-length encoding
Muxing mode : DVD-Video
Avatar
Christophe PEREZ
Le 14 Feb 2022 23:29:06 GMT,
Nicolas George <nicolas$ a écrit :
Le format MP4 est pourri, il ne supporte qu'une petite poignée de
fonctionnalités intéressantes.

Bon, c'est ballot puisque c'est ce que j'ai utilisé pour tout ce qui
n'avait pas de soustitre "externe".
Tu aurais conseillé quoi toi comme format le plus largement reconnu ?
Le format Vobsub (que tu appelles sub+idx) stocke les sous-titres
comme images. Pour le convertir en texte, il faudrait de la
reconnaissance de caractères. Pas impossible, mais en aucun cas 100%
automatique.

Ok, je comprends maintenant ce que j'ai lu en référence Í  l'OCR.
Donc j'abandonne cette idée.
Tu t'épargneras des cheveux blancs en incrustant les sous-titres
directement dans la vidéo.

Du coup, ça tombe bien, ça m'arrange.
Regarde dans la doc de ffmpeg sur -filter_complex, c'est expliqué.

La doc est un peu complexe pour mon niveau de connaissance et
d'anglais.
De plus, si je comprends bien, pour utiliser cette option, il me faut
obligatoirement ré-encoder la vidéo ou j'ai mal compris ?
J'ai trouvé un lien qui suggère
-filter_complex "[0:v][1:s]overlay" -c:s dvdsub -c:v
libx264 -crf 24 -c:a aac -b:a 160K -ar 48K -strict -2 -y
J'ai testé tel quel, j'ai bien mes soustitres, et ça c'est déjÍ  bien,
mais je perds en qualité, Í  cause du réencodage sans doute.
Je peux avoir mieux Í  ton avis ?
La sortie de ffmpeg/ffprobe est plus parlante.

ça ?
Input #0, avi, from 'video.avi':
Metadata:
software : MEncoder SVN-r34643
Duration: 00:55:17.64, start: 0.000000, bitrate: 1390 kb/s
Stream #0:0: Video: mpeg4 (Advanced Simple Profile) (XVID /
0x44495658), yuv420p, 624x352 [SAR 1:1 DAR 39:22], 1238 kb/s, 23.98
fps, 23.98 tbr, 23.98 tbn, 23.98 tbc Stream #0:1: Audio: mp3
(U[0][0][0] / 0x0055), 48000 Hz, stereo, fltp, 139 kb/s
Avatar
pehache
Le 15/02/2022 Í  04:16, Christophe PEREZ a écrit :
Le 14 Feb 2022 23:29:06 GMT,
Nicolas George <nicolas$ a écrit :
Le format MP4 est pourri, il ne supporte qu'une petite poignée de
fonctionnalités intéressantes.

Bon, c'est ballot puisque c'est ce que j'ai utilisé pour tout ce qui
n'avait pas de soustitre "externe".
Tu aurais conseillé quoi toi comme format le plus largement reconnu ?

Matroska (mkv).
S'il est reconnu par ta TV, ce qui n'est pas toujours évident (si elle
est récente ça devrait passer)
Tu t'épargneras des cheveux blancs en incrustant les sous-titres
directement dans la vidéo.

Du coup, ça tombe bien, ça m'arrange.

Pour moi c'est au contraire un peu ballot d'incruster plutÍ´t que de
conserver des pistes séparées si c'est possible, qui donnent plus
d'options de visualisation.
Regarde dans la doc de ffmpeg sur -filter_complex, c'est expliqué.

La doc est un peu complexe pour mon niveau de connaissance et
d'anglais.
De plus, si je comprends bien, pour utiliser cette option, il me faut
obligatoirement ré-encoder la vidéo ou j'ai mal compris ?

Ca parait difficile sans (au moins les zones incrustées doivent être
réencodées)
J'ai trouvé un lien qui suggère
-filter_complex "[0:v][1:s]overlay" -c:s dvdsub -c:v
libx264 -crf 24 -c:a aac -b:a 160K -ar 48K -strict -2 -y
J'ai testé tel quel, j'ai bien mes soustitres, et ça c'est déjÍ  bien,
mais je perds en qualité, Í  cause du réencodage sans doute.
Je peux avoir mieux Í  ton avis ?

En diminuant la valeur de crf
La sortie de ffmpeg/ffprobe est plus parlante.

ça ?
Input #0, avi, from 'video.avi':
Metadata:
software : MEncoder SVN-r34643
Duration: 00:55:17.64, start: 0.000000, bitrate: 1390 kb/s
Stream #0:0: Video: mpeg4 (Advanced Simple Profile) (XVID /
0x44495658), yuv420p, 624x352 [SAR 1:1 DAR 39:22], 1238 kb/s, 23.98
fps, 23.98 tbr, 23.98 tbn, 23.98 tbc Stream #0:1: Audio: mp3
(U[0][0][0] / 0x0055), 48000 Hz, stereo, fltp, 139 kb/s

Rien ne t'oblige Í  réencoder l'audio par contre. Tu ne gagneras rien en
qualité en passant du mp3 Í  139kb/s Í  de l'aac Í  160kb/s, et tu perds
même un (tout petit) peu de place.
--
"...sois ouvert aux idées des autres pour peu qu'elles aillent dans le
même sens que les tiennes.", ST sur fr.bio.medecine
ST passe le mur du çon :