StreamingCommunity icon indicating copy to clipboard operation
StreamingCommunity copied to clipboard

Audio e Video stuttering.

Open marcolatella opened this issue 1 year ago • 51 comments

NeI video finale mp4 ottenuto dal merge dei video .ts c'è un micro lag circa ogni 5 secondi (lunghezza dei video .ts). Si può risolvere? Grazie

marcolatella avatar Apr 07 '24 22:04 marcolatella

Nome serie o film ? Capita sempre?

Arrowar avatar Apr 08 '24 04:04 Arrowar

Ho provato con the last of Us con i primi due episodi e il problema si presenta per entrambi. Ho pensato fosse a causa di VLC, ma anche cambiando player quel micro lag c’è sempre.

marcolatella avatar Apr 08 '24 05:04 marcolatella

Han okay, adesso non mi ricordo se l'ho aggiunto, ma prova ad attivare il debug sul file di config, e controllare dopo aver scaricato il video e l'audio se da un errore del tipo: mancano file ts. Solitamente questo per esempio abbiamo per il video 30 file di stream e per l'audio 29 file di strem o comunque i due numeri non combaciano si presentava sempre questo errore. Oppure è la codifica.

Arrowar avatar Apr 08 '24 06:04 Arrowar

Ho appena ricontrollato ed effettivamente è stato rimossoz, vedrò aggiungerlo dato che dipende molto dalla connessione e da quanti file stream effettivamente sono stati scaricati e senza il file di debug è parecchio difficile provare a indovinare dove sta il problema.

Arrowar avatar Apr 08 '24 06:04 Arrowar

Controllando ho notato che non ci sono file audio nella relativa cartella. Vengono scaricati solo i file video che hanno già l'audio incorporato. Quindi mi viene da pensare che sia qualcosa relativo al merge delle clip oppure alla codifica. Non so, non sono dentro all'abito codifiche audio/video

marcolatella avatar Apr 08 '24 11:04 marcolatella

Di solito quando c'è solo il video non ci dovrebbero essere problemi. Però il merge del video è uguale anche a quello dell' audio quindi se non ci sono problemi con le serie che non presentano l'audio dovrebbe funzionare anche viceversa.

Arrowar avatar Apr 08 '24 14:04 Arrowar

Questa settimana vedo se riesco a dargli un occhio.

Arrowar avatar Apr 08 '24 14:04 Arrowar

Controllando ho notato che non ci sono file audio nella relativa cartella. Vengono scaricati solo i file video che hanno già l'audio incorporato. Quindi mi viene da pensare che sia qualcosa relativo al merge delle clip oppure alla codifica. Non so, non sono dentro all'abito codifiche audio/video

Se riesci riprova ora.

Arrowar avatar Apr 08 '24 17:04 Arrowar

Ora non funziona più. ModuleNotFoundError: No module named 'winreg'

Ho un Mac, se può essere utile

marcolatella avatar Apr 08 '24 18:04 marcolatella

Dopo aver commentato alcune cose che mi davano errore (riguardanti windows) sono riuscito a farlo funzionare nuovamente, ma il problema non è sparito. Il file finale stuttera ancora.

marcolatella avatar Apr 08 '24 19:04 marcolatella

Ora non funziona più. ModuleNotFoundError: No module named 'winreg'

Ho un Mac, se può essere utile

Win reg funziona solo per win.

Arrowar avatar Apr 08 '24 19:04 Arrowar

Ora non funziona più. ModuleNotFoundError: No module named 'winreg'

Ho un Mac, se può essere utile

Win reg funziona solo per win dopo vedo di sistemare.

Arrowar avatar Apr 08 '24 19:04 Arrowar

Dopo aver commentato alcune cose che mi davano errore (riguardanti windows) sono riuscito a farlo funzionare nuovamente, ma il problema non è sparito. Il file finale stuttera ancora.

Riesci a inviarmi solo la parte che ti da errore ?

Arrowar avatar Apr 08 '24 19:04 Arrowar

  1. Allora il primo errore è quello di Winreg che ho riportato prima. Che correggo semplicemente commentando riga 7 e 12 del file _win32.py

  2. Dopo ottengo questo:

File "/Users/user/PycharmProjects/StreamingCommunity_api/Src/Lib/Request/user_agent.py", line 55, in create_or_update_user_agent_file user_agent_file = os.path.join(os.environ.get('TEMP'), 'fake_user_agent.json') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "<frozen posixpath>", line 76, in join TypeError: expected str, bytes or os.PathLike object, not NoneType

Che correggo creando manualmente una cartella TEMP e creando una variable d'ambiente TEMP contenente l'absolute path della cartella.

  1. Dopodiché ottengo quest'altro errore:

File "/Users/user/PycharmProjects/StreamingCommunity_api/Src/Lib/Request/user_agent.py", line 100, in get_random_user_agent with open(self.user_agent_file, 'r') as f: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ FileNotFoundError: [Errno 2] No such file or directory: '/var/folders/dl/zxx8v_056wlgq_j06mm5fsxh0000gn/T/fake_user_agent.json'

Che correggo cambiando la riga 84 di user_agent.py da: self.user_agent_file = os.path.join(tempfile.gettempdir(), 'fake_user_agent.json') a self.user_agent_file = os.path.join(os.environ.get('TEMP'), 'fake_user_agent.json')

Dopodiché lo script funziona e riesco a scaricare gli episodi, ma lo stutter c'è ancora

marcolatella avatar Apr 08 '24 20:04 marcolatella

Ok oggi vedo di aggiungere le correzioni.

Arrowar avatar Apr 09 '24 05:04 Arrowar

Che versione di ffmpeg hai ?

Arrowar avatar Apr 09 '24 05:04 Arrowar

Per usare ffmpeg scarico il file statico binario di ffmpeg e ffprobe da https://evermeet.cx/ffmpeg/.

La versione è la seguente: ffmpeg version N-114686-gd307aca184-tessus https://evermeet.cx/ffmpeg/ Copyright (c) 2000-2024 the FFmpeg developers built with Apple clang version 15.0.0 (clang-1500.3.9.4)

marcolatella avatar Apr 09 '24 06:04 marcolatella

Ho provato anche a cambiare versione ed usare la 6.1.1 ma nulla. Lo stutter c'è ancora

marcolatella avatar Apr 09 '24 07:04 marcolatella

Se hai tempo, riusciresti a entrare sul server di discord e inviarmi un esempio di alcune parti che vanno in stutter.

Arrowar avatar Apr 09 '24 08:04 Arrowar

Il link di invito sembra non essere più valido

marcolatella avatar Apr 09 '24 08:04 marcolatella

https://discord.gg/8vV68UGRc7

Helper0x avatar Apr 09 '24 11:04 Helper0x

Ho fatto qualche prova e Il problema riguarda il merge dei file ts senza file audio. Sembra che ffmpeg non riesca a fare il concat correttamente. Facendolo manualmente invece si ottiene un file video funzionante senza problemi audio.

Per riprodurre il problema:

  1. Scaricare un contenuto senza file audio
  2. Interrompere ad es. al 5% del download
  3. usare cat per unire un po' di file video es: cat 01.ts 02.ts 03.ts 04.ts > all.ts
  4. ffmpeg -i all.ts -acodec copy -vcodec copy all.mp4

Il file all.mp4 viene riprodotto senza problemi a differenza di quando viene generato con -f concat Ciao

andrea-ble avatar Apr 17 '24 23:04 andrea-ble

Il problema è che cat è presente solo per unix e forse anche mac.

Arrowar avatar Apr 18 '24 05:04 Arrowar

Ciao, si, cat è presente su linux/Mac. l'equivalente per windows è :

COPY /b input_1.mts + input_2.mts + input_3.mts output.mts

andrea-ble avatar Apr 18 '24 06:04 andrea-ble

Forse crea problemi quando abbiamo più di di 1000 ts da unire. Prova con un film abbastanza lungo se hai tempo.

Arrowar avatar Apr 18 '24 09:04 Arrowar

Ciao, si ho verificato, il problema si presenta sia con tanti che con pochi ts. Nessun problema se faccio la concatenazione manuale.

Sembra la combinazione di -f concat e -c copy e si verifica, almeno nel mio caso, sia su win che su macOS.

andrea-ble avatar Apr 18 '24 10:04 andrea-ble

Han okay ma il cut funziona anche con più di mille .ts file ho da errori del tipo, comando troppo lungo ?

Arrowar avatar Apr 18 '24 11:04 Arrowar

Per il cat di linux/Mac ho passato la tua lista .txt di file .ts tramite xargs a cat quindi non ci sono problemi sulla lunghezza del comando.

andrea-ble avatar Apr 18 '24 11:04 andrea-ble

Ok perfetto perché con win dava problemi strani.

Arrowar avatar Apr 18 '24 11:04 Arrowar

Per il cat di linux/Mac ho passato la tua lista .txt di file .ts tramite xargs a cat quindi non ci sono problemi sulla lunghezza del comando.

Forse ora si è risolto.

Arrowar avatar Apr 28 '24 13:04 Arrowar