• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Pomoc w doborze oprogramowania do generowania skrótów filmów

42 Warsaw Coding Academy
+1 głos
278 wizyt
pytanie zadane 1 października 2021 w Systemy operacyjne, programy przez Artek Stary wyjadacz (11,800 p.)
Potrzebowałbym oprogramowania, które pobierałoby film w formacie mp4 (albo najlepiej wiele filmów na raz) i generowałoby jego skrót powiedzmy 10 sekundowy (typu początek, środek, koniec). Czy polecacie coś?

1 odpowiedź

+3 głosów
odpowiedź 1 października 2021 przez edutomek Dyskutant (8,380 p.)
Na własne potrzeby napisałem dwa skrypty (pod GNU/Linuksa):

1) do pobierania filmów z różnych platform hostingowych (np. Rumble, YT),
2) do "wycinania" z filmów różnych fragmentów, sklejania ich i enkodowania (żeby zmniejszyć rozmiar) - używam tego do wycinania reklam z nagrań robionych przez mój dekoder TV.

Ad.1 - tu wykorzystałem youtube-dl (wbrew nazwie potrafi pobierać filmy nie tylko z YT).
Ale jeśli chodzi o pliki zamieszczone na jakichś serwerach, to zapewne zwykły wget dałby radę.

Ad.2 - tu przydał się głównie ffmpeg (można też użyć innych narzędzi do sprawdzania metadanych filmów).

Po co to piszę?

Raz - żeby zaznaczyć, że da się coś takiego zrobić nawet w prostym Bashu. (A więc można to wrzucić np. w cron-a.)

Dwa - jeśli miałoby to w czymś pomóc, to mogę obydwa skrypty podesłać.
Nie robią dokładnie tego, o czym mowa, ale łatwo będzie je przerobić.
komentarz 4 października 2021 przez Artek Stary wyjadacz (11,800 p.)
No jestem ciekaw jak coś takiego można by ogarnąć w bash'u. Poproszę o udostępnienie skryptu - też korzystam z linuks'a
1
komentarz 4 października 2021 przez edutomek Dyskutant (8,380 p.)

Odnośnie wszystkich wstawek: gdyby kiedyś przestały działać, a ktoś chciałby dostęp, pisać do mnie na PW. W końcu odbiorę i udostępnię.

Swoją drogą ciekawe: gdyby ktoś mi dał zlecenie na napisanie takich skryptów, to bym się zgodził i wystawił odpowiednią cenę. A tu na forum proszę - daję za darmo. Zresztą z konsultacjami i korepetycjami mam podobnie. Swoją drogą, wszystkie informacje potrzebne do napisania tych skryptów sam znalazłem "gdzieś w sieci".

toMP3: https://controlc.com/3af9c21f

Na co zwracam uwagę:
1) użycie youtube-dl: nie korzystam z systemowego, tylko z zainstalowanego "ręcznie", w konkretnym katalogu.
Ten systemowy, pod moim Ubuntu, jest na ogół przestarzały, a gnoje z YT co jakiś czas coś zmieniają i skrypt przestaje działać.

2) Idea sktyptu jest prosta: odczyt danych z pliku (przykładowy wiersz poniżej), potem wykorzystanie odpowiedniego narzędzia (youtube-dl albo wget) do ściągnięcia pliku.

Plus przerobienie tego na mp3 - słucham sobie później audio podczas sesji treningowej.

Tobie powinno wystarczyć samo ściągnięcie filmu poprzez youtube-dl, względnie poprzez wget, jeśli film jest gdzieś hostowany w normalny sposób.

3) toMP3 to mój kolejny skrypt (chyba też wykorzystuje ffmpeg, ale głowy za to nie dam) - ale to nie ma znaczenia w kontekście ściągania filmów.

Przykładowe wiersze z pliku z filmami:

https://rumble.com/embed/vjo01u/?pub=4 bs-usa-decline
https://www.youtube.com/watch?v=0__KdffZEhk gwiazdowski
http://traffic.megaphone.fm/WWO7898589640.mp3 db-1608

Skrypt działa, używany wielokrotnie.


cutCommercialsOut: https://controlc.com/fcea83e5

Tutaj z kolei najważniejsze są użycia ffmpeg w pętli while, a później te dwa na końcu. Cała reszta skryptu to zabawa z przetwarzaniem czasów w różnych formatach. (Swoją drogą czas jest odczytywany z konsoli, a nie automatycznie, czy z jakiegoś pliku.)

Pierwszy ffmpeg wycina fragment z pliku *.mts (takie nagrywa mój dekoder) - sztuczka w tym, żeby najpierw "przewinąć" do momentu startowego, a potem wyciąć odpowiedni czas nagrania od tego momentu.

Każdy taki wycięty fragment trafia do odrębnego pliku, a nazwy tych plików są z kolei zapisywane w pliku tekstowym toconcat.txt. W moim przypadku są to fragmenty nagrań "pomiędzy reklamami" (znam je stąd, że przed obróbką pliku przeglądam go na szybko).

Potem wycięte fragmenty są łączone w jeden plik .mts. W moim przypadku powstaje plik z "wyciętymi" reklamami. Uwaga: momenty cięcia bywają nieprecyzyjne; stosuję zasadę, że robię cięcie ok. 4-5 sekund po rozpoczęciu reklam i 4-5 sekund przed ich zakończeniem.

Na koniec jest enkodowanie pliku .mts do .mp4, żeby zmniejszyć rozmiar. Tutaj już parametry zostały dobrane przeze mnie eksperymentalnie.

Odnośnie wycinania fragmentu filmu z początku, ze środka i z końca: z początkiem nie powinno być problemu, a co do środka i końca, to albo można założyć, że filmy będą odpowiednio długie i wykorzystać stałe czasy "wycięć", albo poszukać, jak sprawdzić długość filmu. Zresztą można też zapisać taką długość obok URLa filmu do ściągnięcia (na wzór tego, co zrobiłem w pierwszym skrypcie) - wtedy skrypt będzie "wiedział", jakich czasów ekstrakcji użyć do filmów.

Podejrzeam, że w ffmpeg da się też robić jakieś dodatkowe efekty przejść pomiędzy łączonymi fragmentami filmów, ale sam się tak nigdy nie bawiłem. (No... wstawiałem tylko jakieś fade-in czy fade-out.)
 

Podobne pytania

0 głosów
4 odpowiedzi 984 wizyt
pytanie zadane 11 czerwca 2018 w Systemy operacyjne, programy przez Bytnior Początkujący (350 p.)
0 głosów
3 odpowiedzi 3,079 wizyt
pytanie zadane 25 września 2016 w Systemy operacyjne, programy przez marcin99b Szeryf (84,230 p.)
0 głosów
2 odpowiedzi 257 wizyt
pytanie zadane 24 grudnia 2020 w Systemy operacyjne, programy przez Mikisali Początkujący (320 p.)

93,377 zapytań

142,380 odpowiedzi

322,532 komentarzy

62,727 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...