FFmpeg x264 na x265 u kontejneru mp4

Jigdo

  • ****
  • 485
    • Zobrazit profil
FFmpeg x264 na x265 u kontejneru mp4
« kdy: 01. 02. 2023, 19:09:04 »
mam 3 otazky.

[1] - Nabizi iVysilani nejake video ve x265 formatu? Zadne jsem jeste nenasel, ale treba neco delam spatne ...
a vetsinou je to avc1.4dxxxx


[2]
Pri konverzi video streamu z x264 na x265 a kopii audio/titulku (cca xx/xx) mi funguje tohle:
ffmpeg -i i.mp4 -pix_fmt yuv420p10le -c:v libx265 -vtag hvc1 -crf 28 -c:a copy -c:s copy -map 0 o.x265-28.mp4

ale pri prehravani x265 verze je videt pri vyberu audio/titulku stopy Track 3 - [English] misto English - [English]...
poradi nekdo jako zachovat pri konverzi videa na x265 format Čeština - [Czech] namisto Track 3 - [Czech] u audia/titulku?


[3]
Zajimalo by mne, kdybych z toho videa pri konverzi na x265 chtel do kopie vytahnout jen urcite streams (de|fr) audio/titulku (bez konverze)
jak postupovat?
Original je x264 a ma pres 100 streams ....

Na https://trac.ffmpeg.org/wiki/Encode/H.265 jsem samozrejmne nic nenasel ....a ani na https://x265.readthedocs.io/en/master/cli.html :(
« Poslední změna: 01. 02. 2023, 22:21:52 od Petr Krčmář »



Re:FFmpeg x264 na x265 u kontejneru mp4
« Odpověď #2 kdy: 03. 02. 2023, 13:15:57 »
K 1. otázce lze dodat, že obecně bych na webu mic H.265 streamů nečekal, s ohledem na nevěstinec, který panuje v patent poolech a nenulové riziko, že na tebe skočí někdo další s nějakými požadavky. Do toho ČT rozhodně nepůjde. Nikdy, nikdy, nikdy.

Re:FFmpeg x264 na x265 u kontejneru mp4
« Odpověď #3 kdy: 03. 02. 2023, 13:50:56 »
Já na video z ČT používám jednoduše
Kód: [Vybrat]
-c:v libx265 -preset medium -crf 26V konverzi na 10 bitů moc smyslu nevidím a CRF 28 bych nechal jen na nekvalitní pořady (konvertované ze starých analogových záznamů), u nových by to bylo zbytečně degradující a tolik místa to neušetří. Na jazyk titulků lze použít
Kód: [Vybrat]
-metadata:s:a language=cze -metadata:s:s language=czeČT používá identifikátor "ces", ale co jsem vypozoroval, ostatní vesměs používají "cze" a i přehrávače to, zdá se, preferují. Pro angličtinu je to samozřejmě "eng". Pokud by tam byly dvoje titulky, tak za to "metadata:s:s" lze přidat ještě ":0" nebo ":1" pro nastavení jazyka jen konkrétního streamu. Výběr konkrétních streamů např.
Kód: [Vybrat]
-map 0:v -map 0:a -map 0:s:m:language:eng\? -map 0:s:m:language:cze\?Ten otazník je tam proto, aby ffmpeg neskončil chybou, když ve vstupu odpovídající stream není, když si jste jistý, že tam je, můžete ho vynechat. Ale nejsem si jistý, jestli kontejner MP4, který iVysilani používá, vůbec umožňuje víc titulků v jednom souboru.

Jigdo

  • ****
  • 485
    • Zobrazit profil
Re:FFmpeg x264 na x265 u kontejneru mp4
« Odpověď #4 kdy: 04. 02. 2023, 15:13:24 »
K 1. otázce lze dodat, že obecně bych na webu mic H.265 streamů nečekal, s ohledem na nevěstinec, který panuje v patent poolech a nenulové riziko, že na tebe skočí někdo další s nějakými požadavky. Do toho ČT rozhodně nepůjde. Nikdy, nikdy, nikdy.

Predpokladam ze video ktere se da sehnat od sluzeb jako DS NP, AM ZN a N F ve 4K kvalite + (DV) ti lide nerekoduji z x264 do x265 ale je v tom kodeku nabizene stremovaci sluzbou pri objemu dat ktere ty soubory maji?

Prece slo o to snizovat datovy tok s prechodme na x265 .... treba v DVB prechodu v CZ na DVB-T2 s x265 kodekem ........tak proc CT vysila v x265 ale video na webu nabizi stale ve x264 ...... :(

Takze to vypada na skok z x264 na AV1 za par let? :)
« Poslední změna: 04. 02. 2023, 15:20:29 od Jigdo »


doe

Re:FFmpeg x264 na x265 u kontejneru mp4
« Odpověď #5 kdy: 04. 02. 2023, 18:12:23 »
Na webu je H.264/AVC kvůli široké kompatibilitě. Jediný webový prohlížeč široko daleko schopný přehrát H.265/HEVC byl snad jen Microsoft Edge, ten původní postavený na základě EdgeHTML. Poté, co se Edge stal jen skinem pro Chromium o tuto možnost na docela dlouhou dobu přišel. Až nedávno se to změnilo a Edge podporu HEVC znovu přidal. Teď už to má (od verze 107) i Chrome a ostatní prohlížeče postavené na Chromiu.

Já osobně bych videa stažená z iVysílání nerekódoval vůbec. Bitrate zase tak vysoký není a jakýkoliv převod jen zničí kvalitu.

Hlavní předností ČT v DVB-T2 je 50p a AC-3 5.1. Na hokej perfektní. Na záznamy filmů a koncertů, kvůli zvuku, taky. Ale filmy, které 50 snímků za sekundu nemají, tak viditelně čistější a detailnější obraz má iVysílání, i přesto, že je používán "zastaralý" kodek H.264. Ideální (z hlediska kvality) je provést mux audia z TV a videa z webu.
V DVB-T2 totiž v obraze u některých pořadů a reklam "mihotají" řádky (prokládání?). Ale celkově bych řekl, že ČT je jediná TV stanice, která šla ve vysílací kvalitě nahoru. Oproti začátkům zvedli datový tok obrazu a je to znát. Na komerční televize se nedá moc dívat. Prima začínala s 1440x1080, přes 1280x720 a skončila na 960x540. TV Nova se nedá ani poslouchat se svým "Hi-Fi" AAC @ 96 kb/s...
Jediné, co mě zpětně u ČT trochu mrzí je to, že nedávno zrušili dynamické přepínání počtu kanálů 2.0/5.1. Stereo pořady zkrátka zněly lépe kódované jako AC-3 2.0 @ 448 kb/s, než když je teď komplet všechno staticky jako 5.1 se stejným bitrate. Míra zkreslení se zkrátka zvýšila, bohužel.
« Poslední změna: 04. 02. 2023, 18:15:07 od doe »

Jigdo

  • ****
  • 485
    • Zobrazit profil
Re:FFmpeg x264 na x265 u kontejneru mp4
« Odpověď #6 kdy: 07. 02. 2023, 13:07:33 »
moc som to neskusal ale:
2: https://superuser.com/questions/834244/how-do-i-name-an-audio-track-with-ffmpeg
3: https://trac.ffmpeg.org/wiki/Map


At delam co delam, proste se mi nedari ten "Titul" u audio/titulku streamu prekopirovat s ffmpeg do noveho souboru :(
Ze tam ta informace je v mp4, jsem kontroloval

mediainfo --inform= "--Output=Audio;[\n - %StreamKindID%, ][%Title%, ][%Language/String%, ][%BitRate/String%, ][%SamplingRate/String%, ][%BitDepth/String%, ]%Format%" file.mp4
 - 5, Espa?ol, Spanish, 256 kb/s, 48.0 kHz, E-AC-3
 - 6, Espa?ol (Latinoamericano), Spanish, 256 kb/s, 48.0 kHz, E-AC-3

mediainfo --inform= "--Output=Text;[\n - %StreamKindID%, ][%Title%, ][%Language/String%, ]" file.mp4
 - 15, Espa?ol, Spanish,
 - 16, Espa?ol (Latinoamericano), Spanish,

Vsude jsou akorat informace o tom jak "title" pridat do streamu ... :(, ale chybi jak ho uspesne kopirovat do noveho souboru .....

ffmpeg -i input.mp4 -map 0:v:0 -c:v copy -metadata:s:a language=spa -metadata:s:s language=spa -map 0:a:m:language:spa -c:a copy -map 0:s:m:language:spa -c:s copy output.mp4
ffmpeg -i input.mp4 -map 0:v:0 -c:v copy -metadata:s:a language=spa -metadata:s:s language=spa -map 0:a:m:language:spa -c:a copy -map 0:s:m:language:spa -c:s copy -map_metadata 0:g -movflags use_metadata_tags output.mp4



Tohle je orginal:

Kind of stream                           : Audio
Kind of stream                           : Audio
...
Format                                   : E-AC-3
Format                                   : E-AC-3
Format/Info                              : Enhanced AC-3
Format/Url                               : https://en.wikipedia.org/wiki/Dolby_Digital_Plus
Commercial name                          : Dolby Digital Plus
Commercial name                          : Dolby Digital Plus
Format settings, Endianness              : Big
Internet media type                      : audio/eac3
Codec ID                                 : ec-3
...
Bit rate mode                            : CBR
Bit rate mode                            : Constant
Bit rate                                 : 256000
Bit rate                                 : 256 kb/s
Channel(s)                               : 6
Channel(s)                               : 6 channels
Channel positions                        : Front: L C R, Side: L R, LFE
Channel positions                        : 3/2/0.1
Channel layout                           : L R C LFE Ls Rs
Samples per frame                        : 1536
Sampling rate                            : 48000
Sampling rate                            : 48.0 kHz
Samples count                            : 293071872
Frame rate                               : 31.250
Frame rate                               : 31.250 FPS (1536 SPF)
...
Compression mode                         : Lossy
Compression mode                         : Lossy
...
Proportion of this stream                : 0.01515
Title                                    : Español (Latinoamericano)
Language                                 : es
Language                                 : Spanish
Language                                 : Spanish
Language                                 : es
Language                                 : spa
Language                                 : es
Service kind                             : CM
...




A u kopie "Title" proste vzdycky chybi:
(Takze neni jasne jestli je to audio pro verze Español (Latinoamericano) a nebo jen Español .....

Kind of stream                           : Audio
Kind of stream                           : Audio
...
Inform                                   : Spanish, 256 kb/s, 48.0 kHz, 6 channels, E-AC-3 (Dolby Digital Plus)
...
Format                                   : E-AC-3
Format                                   : E-AC-3
Format/Info                              : Enhanced AC-3
Format/Url                               : https://en.wikipedia.org/wiki/Dolby_Digital_Plus
Commercial name                          : Dolby Digital Plus
Commercial name                          : Dolby Digital Plus
Format settings, Endianness              : Big
Internet media type                      : audio/eac3
Codec ID                                 : ec-3
...
Bit rate mode                            : CBR
Bit rate mode                            : Constant
Bit rate                                 : 256000
Bit rate                                 : 256 kb/s
Channel(s)                               : 6
Channel(s)                               : 6 channels
Channel positions                        : Front: L C R, Side: L R, LFE
Channel positions                        : 3/2/0.1
Channel layout                           : L R C LFE Ls Rs
Samples per frame                        : 1536
Sampling rate                            : 48000
Sampling rate                            : 48.0 kHz
...
Frame rate                               : 31.250
Frame rate                               : 31.250 FPS (1536 SPF)
...
Compression mode                         : Lossy
Compression mode                         : Lossy
...
Proportion of this stream                : 0.06251
Language                                 : es
Language                                 : Spanish
Language                                 : Spanish
Language                                 : es
Language                                 : spa
Language                                 : es
Service kind                             : CM
...

Jigdo

  • ****
  • 485
    • Zobrazit profil
Re:FFmpeg x264 na x265 u kontejneru mp4
« Odpověď #7 kdy: 07. 02. 2023, 13:22:59 »
Já na video z ČT používám jednoduše
Kód: [Vybrat]
-c:v libx265 -preset medium -crf 26V konverzi na 10 bitů moc smyslu nevidím a CRF 28 bych nechal jen na nekvalitní pořady (konvertované ze starých analogových záznamů), u nových by to bylo zbytečně degradující a tolik místa to neušetří. Na jazyk titulků lze použít
Kód: [Vybrat]
-metadata:s:a language=cze -metadata:s:s language=czeČT používá identifikátor "ces", ale co jsem vypozoroval, ostatní vesměs používají "cze" a i přehrávače to, zdá se, preferují. Pro angličtinu je to samozřejmě "eng". Pokud by tam byly dvoje titulky, tak za to "metadata:s:s" lze přidat ještě ":0" nebo ":1" pro nastavení jazyka jen konkrétního streamu. Výběr konkrétních streamů např.
Kód: [Vybrat]
-map 0:v -map 0:a -map 0:s:m:language:eng\? -map 0:s:m:language:cze\?Ten otazník je tam proto, aby ffmpeg neskončil chybou, když ve vstupu odpovídající stream není, když si jste jistý, že tam je, můžete ho vynechat. Ale nejsem si jistý, jestli kontejner MP4, který iVysilani používá, vůbec umožňuje víc titulků v jednom souboru.

Dekuji,

Kolega rikal ze to dava smysl, kdyz uz delam ten encoding do x265 ....
a ja to musim delat na CPU a trva to strasne dlouho, takze do x265 delam veci jen sporadicky (a jen kvuli mensi velikosti souboru).

-map 0:v -map 0:a -map 0:s:m:language:eng\? -map 0:s:m:language:cze\?

funguje, ale akorat treba u Spa (Latinskoamericka) , Por (Brazilska) a Fra (Kanadska) se neda filtrovat ta regionalita :( a ten "Title" stale chybi v kopii .....

Jigdo

  • ****
  • 485
    • Zobrazit profil
Re:FFmpeg x264 na x265 u kontejneru mp4
« Odpověď #8 kdy: 07. 02. 2023, 13:56:09 »
Na webu je H.264/AVC kvůli široké kompatibilitě. Jediný webový prohlížeč široko daleko schopný přehrát H.265/HEVC byl snad jen Microsoft Edge, ten původní postavený na základě EdgeHTML. Poté, co se Edge stal jen skinem pro Chromium o tuto možnost na docela dlouhou dobu přišel. Až nedávno se to změnilo a Edge podporu HEVC znovu přidal. Teď už to má (od verze 107) i Chrome a ostatní prohlížeče postavené na Chromiu.

Já osobně bych videa stažená z iVysílání nerekódoval vůbec. Bitrate zase tak vysoký není a jakýkoliv převod jen zničí kvalitu.

Hlavní předností ČT v DVB-T2 je 50p a AC-3 5.1. Na hokej perfektní. Na záznamy filmů a koncertů, kvůli zvuku, taky. Ale filmy, které 50 snímků za sekundu nemají, tak viditelně čistější a detailnější obraz má iVysílání, i přesto, že je používán "zastaralý" kodek H.264. Ideální (z hlediska kvality) je provést mux audia z TV a videa z webu.
V DVB-T2 totiž v obraze u některých pořadů a reklam "mihotají" řádky (prokládání?). Ale celkově bych řekl, že ČT je jediná TV stanice, která šla ve vysílací kvalitě nahoru. Oproti začátkům zvedli datový tok obrazu a je to znát. Na komerční televize se nedá moc dívat. Prima začínala s 1440x1080, přes 1280x720 a skončila na 960x540. TV Nova se nedá ani poslouchat se svým "Hi-Fi" AAC @ 96 kb/s...
Jediné, co mě zpětně u ČT trochu mrzí je to, že nedávno zrušili dynamické přepínání počtu kanálů 2.0/5.1. Stereo pořady zkrátka zněly lépe kódované jako AC-3 2.0 @ 448 kb/s, než když je teď komplet všechno staticky jako 5.1 se stejným bitrate. Míra zkreslení se zkrátka zvýšila, bohužel.

Bohuzel uz nejaky cas nemam pristup k ceskemu DVB-T2, jsem odkazan pouze na iVysilani,
u ktereho by se mi libilo mit moznost prehravani/stahovani v x264 i x265 soucasne a jak pisete i AC-3 5.1.

A clovek si muze vybrat pro sledovani na mobilnim zarizeni x265 AAC LC a x264 AC-3 5.1 u starsich zaznamu pro sledovani na TV..

Taky by bylo pekne kdyby zacali nabizet i 50 FPS, jak uz to ostatne dela i BBC nejakou dobu ale stale s AAC LC :( ..
https://github.com/get-iplayer/get_iplayer/wiki/modes

Re:FFmpeg x264 na x265 u kontejneru mp4
« Odpověď #9 kdy: 08. 02. 2023, 08:24:09 »
Kolega rikal ze to dava smysl, kdyz uz delam ten encoding do x265 ....
Smysl by to mělo, kdyby zdroj byl desetibitový, ale pokud není, tak tím nic (z hlediska kvality) nezískáte, jen bude výsledný soubor o něco větší. Naopak, tím CRF 28 si kvalitu ještě zhoršíte.

Citace
a ten "Title" stale chybi v kopii .....
To je divné, defaultně se metadata kopírují, kromě těch, které explicitně změníte. Já naopak potřeboval potlačit kopírování title (pomocí "-metadata title=") u Šťastného pondělí, kde tam dávali nějaké neužitečné interní identifikátory, které se pak zobrazovaly na televizi (přes DLNA) místo názvu souboru.

Jigdo

  • ****
  • 485
    • Zobrazit profil
Re:FFmpeg x264 na x265 u kontejneru mp4
« Odpověď #10 kdy: 08. 02. 2023, 18:39:34 »
Kolega rikal ze to dava smysl, kdyz uz delam ten encoding do x265 ....
Smysl by to mělo, kdyby zdroj byl desetibitový, ale pokud není, tak tím nic (z hlediska kvality) nezískáte, jen bude výsledný soubor o něco větší. Naopak, tím CRF 28 si kvalitu ještě zhoršíte.

Citace
a ten "Title" stale chybi v kopii .....
To je divné, defaultně se metadata kopírují, kromě těch, které explicitně změníte. Já naopak potřeboval potlačit kopírování title (pomocí "-metadata title=") u Šťastného pondělí, kde tam dávali nějaké neužitečné interní identifikátory, které se pak zobrazovaly na televizi (přes DLNA) místo názvu souboru.


CRF 28 jsem zvolil na testovacim vzorku kvuli velikosti souboru .......podle https://trac.ffmpeg.org/wiki/Encode/H.265
CRF affects the quality. The default is 28, and it should visually correspond to libx264 video at CRF 23,
but result in about half the file size. CRF works just like in x264, so choose the highest value that provides an acceptable quality.

Realne pouzitelne je tak 20 - 28 pro mobilni zarizeni (kde je pro mne dulezita velikost), ale testoval jsem rozmezi 11 - 50 pro ruzne videa .... :)

-c:v libx265 -vtag hvc1 -crf 11
-c:v libx265 -preset medium -crf 26



Zkousel jsem MKV -> MP4 s mkvextract/GPAC(MP4Box)

Jak je videt, MKV soubor ma spravny "Title" u audio/titulku
Audio #5
ID                                       : 6
Format                                   : E-AC-3
Format/Info                              : Enhanced AC-3
Commercial name                          : Dolby Digital Plus
Codec ID                                 : A_EAC3
Bit rate mode                            : Constant
Bit rate                                 : 256 kb/s
Channel(s)                               : 6 channels
Channel layout                           : L R C LFE Ls Rs
Sampling rate                            : 48.0 kHz
Frame rate                               : 31.250 FPS (1536 SPF)
Compression mode                         : Lossy
Title                                    : Espa?ol
Language                                 : Spanish
Service kind                             : Complete Main
Default                                  : No
Forced                                   : No

Audio #6
ID                                       : 7
Format                                   : E-AC-3
Format/Info                              : Enhanced AC-3
Commercial name                          : Dolby Digital Plus
Codec ID                                 : A_EAC3
Bit rate mode                            : Constant
Bit rate                                 : 256 kb/s
Channel(s)                               : 6 channels
Channel layout                           : L R C LFE Ls Rs
Sampling rate                            : 48.0 kHz
Frame rate                               : 31.250 FPS (1536 SPF)
Compression mode                         : Lossy
Title                                    : Espa?ol (Latinoamericano)
Language                                 : Spanish
Service kind                             : Complete Main
Default                                  : No
Forced                                   : No

Audio #31
ID                                       : 32
Format                                   : AAC LC
Format/Info                              : Advanced Audio Codec Low Complexity
Codec ID                                 : A_AAC-2
Bit rate                                 : 125 kb/s
Channel(s)                               : 2 channels
Channel layout                           : L R
Sampling rate                            : 48.0 kHz
Frame rate                               : 46.875 FPS (1024 SPF)
Compression mode                         : Lossy
Title                                    : Espa?ol
Language                                 : Spanish
Default                                  : No
Forced                                   : No

Audio #32
ID                                       : 33
Format                                   : AAC LC
Format/Info                              : Advanced Audio Codec Low Complexity
Codec ID                                 : A_AAC-2
Bit rate                                 : 125 kb/s
Channel(s)                               : 2 channels
Channel layout                           : L R
Sampling rate                            : 48.0 kHz
Frame rate                               : 46.875 FPS (1024 SPF)
Compression mode                         : Lossy
Title                                    : Espa?ol (Latinoamericano)
Language                                 : Spanish
Default                                  : No
Forced                                   : No

Text #15
ID                                       : 93
Format                                   : UTF-8
Codec ID                                 : S_TEXT/UTF8
Codec ID/Info                            : UTF-8 Plain Text
Bit rate                                 : 65 b/s
Frame rate                               : 0.255 FPS
Count of elements                        : 1115
Title                                    : Espa?ol
Language                                 : Spanish
Default                                  : No
Forced                                   : No

Text #16
ID                                       : 94
Format                                   : UTF-8
Codec ID                                 : S_TEXT/UTF8
Codec ID/Info                            : UTF-8 Plain Text
Bit rate                                 : 62 b/s
Frame rate                               : 0.260 FPS
Count of elements                        : 1136
Title                                    : Espa?ol (Latinoamericano)
Language                                 : Spanish
Default                                  : No
Forced                                   : No



Rozhodl jsem se vyzkouset utilitu z arsenalu MKVToolNix
https://www.matroska.org/downloads/mkvtoolnix.html
https://mkvtoolnix.download/doc/mkvextract.html


$ mkvextract tracks file.mkv 0:file0.h264 5:file5.ac3 6:file6.ac3 31:file31.aac 32:file32.aac 92:file92.srt 93:file93.srt

Extracting track 0 with the CodecID 'V_MPEG4/ISO/AVC' to the file 'file0.h264'. Container format: AVC/H.264 elementary stream
Extracting track 5 with the CodecID 'A_EAC3' to the file 'file5.ac3'. Container format: Dolby Digital Plus (E-AC-3)
Extracting track 6 with the CodecID 'A_EAC3' to the file 'file6.ac3'. Container format: Dolby Digital Plus (E-AC-3)
Extracting track 31 with the CodecID 'A_AAC' to the file 'file31.aac'. Container format: raw AAC file with ADTS headers
Extracting track 32 with the CodecID 'A_AAC' to the file 'file32.aac'. Container format: raw AAC file with ADTS headers
Extracting track 92 with the CodecID 'S_TEXT/UTF8' to the file 'file92.srt'. Container format: SRT text subtitles
Extracting track 93 with the CodecID 'S_TEXT/UTF8' to the file 'file93.srt'. Container format: SRT text subtitles
Progress: 100%


A uz po vytahnuti specifickych stop, tam ten "Title" zase chybi :(

General
Complete name                            : file5.ac3
Format                                   : E-AC-3
Format/Info                              : Enhanced AC-3
Commercial name                          : Dolby Digital Plus
Overall bit rate mode                    : Constant
Overall bit rate                         : 256 kb/s
FileExtension_Invalid                    : dd+ ec3 eac3

Audio
Format                                   : E-AC-3
Format/Info                              : Enhanced AC-3
Commercial name                          : Dolby Digital Plus
Bit rate mode                            : Constant
Bit rate                                 : 256 kb/s
Channel(s)                               : 6 channels
Channel layout                           : L R C LFE Ls Rs
Sampling rate                            : 48.0 kHz
Frame rate                               : 31.250 FPS (1536 SPF)
Compression mode                         : Lossy
Service kind                             : Complete Main



General
Complete name                            : file31.aac
Format                                   : ADTS
Format/Info                              : Audio Data Transport Stream
Overall bit rate mode                    : Variable

Audio
Format                                   : AAC LC
Format/Info                              : Advanced Audio Codec Low Complexity
Format version                           : Version 4
Codec ID                                 : 2
Bit rate mode                            : Variable
Channel(s)                               : 2 channels
Channel layout                           : L R
Sampling rate                            : 48.0 kHz
Frame rate                               : 46.875 FPS (1024 SPF)
Compression mode                         : Lossy



General
Complete name                            : file92.srt
Format                                   : SubRip
Overall bit rate                         : 139 b/s
Text
Format                                   : SubRip
Start time                               : 51 s 166 ms
Compression mode                         : Lossless
Count of events                          : 1115
Minimum duration per event               : 833 ms
Count of lines                           : 1429
Maximum count of lines per event         : 2




A po muxu s MP4Boxem, tam zase je :)

MP4Box -add file0.h264 -add file5.ac3 -add file6.ac3 -add file31.aac -add file32.aac -add file92.srt -add file93.srt file0-5-6-31-92-93.mp4

Track Importing MPEG-4 AVC - Width 1280 Height 720 FPS 96/4 SAR 1/1
AVC|H264 Import results: 111889 samples (226455 NALUs) - Slices: 2718 I 37518 P 71654 B - 114563 SEI - 2674 IDR - 0 CRA
AVC|H264 Stream uses forward prediction - stream CTS offset: 3 frames
Track Importing EAC-3 - SampleRate 48000 Num Channels 6
Track Importing EAC-3 - SampleRate 48000 Num Channels 6
Track Importing AAC  - SampleRate 48000 Num Channels 2
Track Importing AAC  - SampleRate 48000 Num Channels 2
Track Importing Timed Text - Text track 1280 x 720 font Serif (size 18) layer 0
Track Importing Timed Text - Text track 1280 x 720 font Serif (size 18) layer 0
0.500 secs Interleaving     


Ale ne ten orginalni ... :(


Complete name                            : file0-5-6-31-92-93.mp4
Format                                   : MPEG-4
Format profile                           : Base Media
Codec ID                                 : isom (isom/avc1)
Overall bit rate mode                    : Variable
Overall bit rate                         : 3 866 kb/s
Encoded date                             : UTC 2023-02-08 17:03:37
Tagged date                              : UTC 2023-02-08 17:03:37
Writing application                      : GPAC-2.2-rev0-gab012bbf-master

Frame rate                               : 24.000 FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Progressive
Bits/(Pixel*Frame)                       : 0.140
Title                                    : h264@GPAC2.2-rev0-gab012bbf-master
Encoded date                             : UTC 2023-02-08 17:03:37
Tagged date                              : UTC 2023-02-08 17:03:49
Color range                              : Limited
Color primaries                          : BT.709
Transfer characteristics                 : BT.709
Matrix coefficients                      : BT.709
Codec configuration box                  : avcC

Audio #1
ID                                       : 2
Format                                   : E-AC-3
Format/Info                              : Enhanced AC-3
Commercial name                          : Dolby Digital Plus
Codec ID                                 : ec-3
Bit rate mode                            : Constant
Bit rate                                 : 256 kb/s
Maximum bit rate                         : 270 kb/s
Channel(s)                               : 6 channels
Channel layout                           : L R C LFE Ls Rs
Sampling rate                            : 48.0 kHz
Frame rate                               : 31.250 FPS (1536 SPF)
Compression mode                         : Lossy
Title                                    : ac3@GPAC2.2-rev0-gab012bbf-master
Service kind                             : Complete Main
Default                                  : Yes
Alternate group                          : 1
Encoded date                             : UTC 2023-02-08 17:03:46
Tagged date                              : UTC 2023-02-08 17:03:49

Re:FFmpeg x264 na x265 u kontejneru mp4
« Odpověď #11 kdy: 09. 02. 2023, 23:12:54 »
ffmpeg -i input.mp4 -map 0:v:0 -c:v copy -metadata:s:a language=spa -metadata:s:s language=spa -map 0:a:m:language:spa -c:a copy -map 0:s:m:language:spa -c:s copy -map_metadata 0:g -movflags use_metadata_tags output.mp4

Nejsem si úplně jistý, ale myslím, že uvedené použití -map_metadata kopíruje globální metadata, ale pokud chcete kopírovat metadata např. jen pro audio stream, měl by být použití -map_metadata:s:a 0:s:a

Jirka

Jigdo

  • ****
  • 485
    • Zobrazit profil
Re:FFmpeg x264 na x265 u kontejneru mp4
« Odpověď #12 kdy: 12. 02. 2023, 17:35:12 »
ffmpeg -i input.mp4 -map 0:v:0 -c:v copy -metadata:s:a language=spa -metadata:s:s language=spa -map 0:a:m:language:spa -c:a copy -map 0:s:m:language:spa -c:s copy -map_metadata 0:g -movflags use_metadata_tags output.mp4

Nejsem si úplně jistý, ale myslím, že uvedené použití -map_metadata kopíruje globální metadata, ale pokud chcete kopírovat metadata např. jen pro audio stream, měl by být použití -map_metadata:s:a 0:s:a

Jirka


Pro jistotu jsem zkousel ffmpeg 5.1.2 (debian ma aktualne jen 4.3.5) a bohuzel se stejnym vysledkem
'Title" stale v kopii chybi u audio/titulku :(

Prikladam cely prikaz

ffmpeg-5.1.2/ffmpeg -i input.mp4 -map 0:v:0 -c:v copy -metadata:s:a language=spa -metadata:s:s language=spa -map 0:a:m:language:spa -c:a copy -map 0:s:m:language:spa -c:s copy -map_metadata:s:a 0:s:a -map_metadata:s:s 0:s:s -report output.mp4

Tady jeste pro jistotu, jesti do dobre ctu ty parametry:
-map 0:v:0                      [from 1st input file (0), 1st VIDEO stream (0)]
-c:v copy                      [codec:video copy only]
-metadata:s:a language=spa          [metadata:stream:audio Spanish]
-metadata:s:s language=spa          [metadata:stream:subtitles Spanish]
-map 0:a:m:language:spa -c:a copy    [from 1st input file (0) AUDIO file - map by language SPA only, copy only]
-map 0:s:m:language:spa -c:s copy    [from 1st input file (0) SUBTITLES file - map by language SPA only, copy only]
-map_metadata:s:a 0:s:a          [per-stream metadata - stream_spec AUDIO, from 1st input file (0), stream AUDIO]
-map_metadata:s:s 0:s:s          [per-stream metadata - stream_spec SUBTITELS, from 1st input file (0), stream SUBTITELS]
-report                        [Dump full command line and log output to a file named program-YYYYMMDD-HHMMSS.log in the current directory.]

Re:FFmpeg x264 na x265 u kontejneru mp4
« Odpověď #13 kdy: 13. 02. 2023, 12:19:49 »
Handbrake si s tim neporadi? H.265 s vic jak 8bit hloubkou dela problemy napriklad ve windows a na androidu, kde system neumi vygenerovat nahledy. U linuxu v tuhle chvili nevim, mozna jak ktera distribuce. Ohledne kvality je zajimava stranka primo z napovedy k Handbrake
https://handbrake.fr/docs/en/latest/workflow/adjust-quality.html
Zasadne pouzivam jeden pruchod a i na vyssi rychlosti fast, faster atd to dela pekne vysledky.

Re:FFmpeg x264 na x265 u kontejneru mp4
« Odpověď #14 kdy: 13. 02. 2023, 14:01:12 »
Zdravím.

Hrál jsem si s tím několik hodin (hledání na internetu a zkoušení), jelikož mě to taky zajímá, protože si občas archivuji televizní nahrávky pomocí ffmpeg do mkv formátu. Zjistil jsem, že mnou navrhované -map_metadata:s:a 0:s:a funguje, když je výstup v mkv, ale nefunguje, když konvertuji do mp4, resp. aspoň to tak vypadalo, protože ani ffprobe ani mpv u výsledku nehlásily žádný tag 'Title' u audio streamu.

Pro ověření jsem hledal, čím se dají editovat metadata u mp4, někdo radil, že to jde ve vlc, což se mi nepodařilo, ale náhodou jsem zjistil, že vlc ten název zvukové stopy zobrazuje. Takže jsem si nainstaloval mediainfo a tento program název zobrazil taky.

Zbytek byl snadný. Vzal jsem nahrávku, která má kromě videa dvě zvukové stopy (českou a anglickou) a také titulky v uvedených jazycích, jak ukazuje výstup z mpv:
Kód: [Vybrat]
$ mpv Nahravka.mkv
 (+) Video --vid=1 (*) 'video' (hevc 1920x800 23.976fps)
 (+) Audio --aid=1 --alang=cze (*) 'audio cz' (ac3 6ch 48000Hz)
     Audio --aid=2 --alang=eng 'audio en' (ac3 6ch 48000Hz)
     Subs  --sid=1 --slang=cze 'subtitles cz' (subrip)
     Subs  --sid=2 --slang=eng 'subtitles en' (subrip)
File tags:
 Title: Nahravka
AO: [pulse] 48000Hz 5.1(side) 6ch float
VO: [gpu] 1920x800 yuv420p10
AV: 00:00:01 / 02:06:01 (0%) A-V:  0.000
Pak jsem zkusil vytáhnout pomocí ffmpeg anglický zvuk a české titulky a výsledek dát do mp4:
Kód: [Vybrat]
ffmpeg -y -i Nahravka.mkv -map 0:v -c:v copy -map 0:a:m:language:eng -c:a copy -map 0:s:m:language:cze -c:s mov_text Nahravka.mp4

Ve výsledku jsou správně oba tituly, jak ukazuje zkrácený výpis programu mediainfo:
Kód: [Vybrat]
Audio
ID                                       : 2
Format                                   : AC-3
Format/Info                              : Audio Coding 3
Commercial name                          : Dolby Digital
Codec ID                                 : ac-3
Duration                                 : 2 h 6 min
Bit rate mode                            : Constant
Bit rate                                 : 640 kb/s
Channel(s)                               : 6 channels
Channel layout                           : L R C LFE Ls Rs
Sampling rate                            : 48.0 kHz
Frame rate                               : 31.250 FPS (1536 SPF)
Compression mode                         : Lossy
Stream size                              : 577 MiB (34%)
Title                                    : audio en
Language                                 : English
Service kind                             : Complete Main
Default                                  : Yes
Alternate group                          : 1

Text
ID                                       : 3
Format                                   : Timed Text
Muxing mode                              : sbtl
Codec ID                                 : tx3g
Duration                                 : 2 h 5 min
Bit rate mode                            : Variable
Bit rate                                 : 53 b/s
Frame rate                               : 0.339 FPS
Stream size                              : 48.4 KiB (0%)
Title                                    : subtitles cz
Language                                 : Czech
Default                                  : Yes
Forced                                   : No
Alternate group                          : 3
Pokud použiji ještě volbu -map_metadata, zkopírují se jen explicitně uvedená metadata, např. pokud u předchozího příkazu přidám -map_metadata:s:a 0:s:a:0, přepíše se mi český název k anglickému zvuku, k ostatním streamům se nenakopíruje nic.
 
Jirka