Portál AbcLinuxu, 7. května 2025 01:30

Dotaz: Hromadný převod video souborů

3.11.2016 23:10 Petr
Hromadný převod video souborů
Přečteno: 651×
Odpovědět | Admin
Poradíte mi prosím, jak převést více souborů MOV na MP4 najednou? Našel jsem výborný nástroj avconv a pomocí avconv -i input.MOV -vcodec copy output.mp4 si převádím soubory bez ztráty kvality z akční kamery, která nahrává videa do MOV. Je ale možné nějak hromadně převést všechny soubory v adresáři? Pokud ano, poraďte mi, prosím, jak? Děkuji.
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

k3dAR avatar 3.11.2016 23:46 k3dAR | skóre: 63
Rozbalit Rozbalit vše Re: Hromadný převod video souborů
Odpovědět | | Sbalit | Link | Blokovat | Admin
muzes to same zavolat v cyklu pro dostupne soubory s koncovkou .MOV v aktualnim adresari (predpokladam pouzit bash jako shell, nebo jiny co umoznuje nahrady v ramci promene, pouzite pro prevod casti nazvu souboru MOV na mp4)
for file in *.MOV; do avconv -i ${file} -vcodec copy ${file/MOV/mp4}; done
nebo jako script:
#!/bin/bash
for file in *.MOV; do 
    avconv -i ${file} -vcodec copy ${file/MOV/mp4}
done
porad nemam telo, ale uz mam hlavu... nobody
4.11.2016 12:23 lertimir | skóre: 64 | blog: Par_slov
Rozbalit Rozbalit vše Re: Hromadný převod video souborů
Odpovědět | | Sbalit | Link | Blokovat | Admin
V současnosti, když už převod tak do h265. Použivám
#/bin/bash

find . -type f -name "*.$1" -exec bash -c '
	    i="{}";adr="$PWD/{}"; name=${i%.*}; \
#    echo "$i $name.mkv"    \;
     set -e;
     ffmpeg -hide_banner -hwaccel auto  -i "$i"  -c:a aac -strict -2 -c:s copy -c:v libx265 -preset faster  -x265-params crf=26:ref=4:rd=5:rdoq=1:psy-rd=3:psy-rdoq=10  "$name.h265.mkv";
     echo "$PWD" >> ~/log/recoded.log;
     touch -r "$i" "$name.h265.mkv";
     wc -c "$i"|tee -a ~/log/recoded.log;
     wc -c "$name.h265.mkv"|tee -a ~/log/recoded.log;
     echo " " >> ~/log/recoded.log;
     rm "$i"' \;
     
pro převody různých videí do h265. script se zavolá v adresáři s parametrem extenze videí které mají být překódovány. do logu se napíše, co bylo překódováno s jakou velikostí bylo původní a s jakou nové video a původní se smaže. parametr (set -e) způsobí, že chyba při překódování brejkne vnitřní skript a záznam do logu a smazání originálních dat se neprovede. samozřejmě s h265 parametry jde si pohrát.
4.11.2016 20:31 GeBu | skóre: 27 | blog: zápisky
Rozbalit Rozbalit vše Re: Hromadný převod video souborů
Na co konkrétně to používáš? Ve smyslu, jaké parametry má vstupní video a jaké výstupní?
7.11.2016 20:03 lertimir | skóre: 64 | blog: Par_slov
Rozbalit Rozbalit vše Re: Hromadný převod video souborů
různá videa od 480 do 1080 taktéž, různé vstupní kódování od mpeg2 do h264. osobní zkušenost čím lepší video tím lepěí komprese. stará videa se znatelným šumem nebo pixelací zkoro nekompresuje a kvalitní videa poměr úžasný bez pocitové ztráty kvality.
4.11.2016 18:12 Petr
Rozbalit Rozbalit vše Re: Hromadný převod video souborů
Odpovědět | | Sbalit | Link | Blokovat | Admin
Mockrát díky oboum. Nevím, jestli mám převádět do H.265, nechtěl jsem totiž nijak manipulovat s kvalitou, a proto jsem chtěl jen změnit kontejner.
Josef Kufner avatar 7.11.2016 21:08 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Hromadný převod video souborů
Pokud budeš video překódovávat, tak kvalita klesne. Pokud jen změníš kontejner (a třeba doplníš metadata), tak kvalitu neztratíš.

Připrav si skript s příkaz(y) na převod jednoho souboru a pak to obal do foru jak je napsáno výše.
Hello world ! Segmentation fault (core dumped)
5.11.2016 16:49 Petr
Rozbalit Rozbalit vše Re: Hromadný převod video souborů
Odpovědět | | Sbalit | Link | Blokovat | Admin
Poradíte mi ještě prosím, jak všechny soubory mp4 v adresáři spojím do jednoho hromadně? Teď to dělám přes MP4Box -cat 001.mp4 -cat 002.mp4 -cat 003.mp4 -cat 004.mp4 -cat 005.mp4 -cat 006.mp4 -new final.mp4, ale nechci všechny vypisovat...
Jendа avatar 5.11.2016 17:05 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Hromadný převod video souborů
MP4Box `ls -1 *.mp4 | sed -re "s/^/ -cat /g" | tr -d "\n"` -new final.mp4
Nějaký tutoriál na skriptování v bashi byl v Linux, Dokumentační projekt.
5.11.2016 17:13 Petr
Rozbalit Rozbalit vše Re: Hromadný převod video souborů
No, budu si to muset trosku nastudovat.. moc diky :)
Josef Kufner avatar 7.11.2016 21:10 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Hromadný převod video souborů
Pozor na mezery v názvu.
Hello world ! Segmentation fault (core dumped)
Josef Kufner avatar 7.11.2016 21:29 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Hromadný převod video souborů
Trochu univerzálnější a srozumitelnější přístup je vygenerovat si skript:
echo "mp4box \\"
find -maxdepth 1 -iname '*.mp4' -type f -print0 | xargs -n 1 -0 printf '\t-cat %q \\\n'
echo -e "\t-out output.mp4"
find ti najde požadované soubory, xargs spustí na každý název souboru printf, který escapuje specialní znaky (%q) a přidá -cat

Pak ho zkontrolovat (uvidíš to, co bys psal ručně) a pokud je v pořádku, tak ho spustit:
( skript ) | bash
Dohromady tedy:
(
  echo "mp4box \\"
  find -maxdepth 1 -iname '*.mp4' -type f -print0 | xargs -n 1 -0 printf '\t-cat %q \\\n'
  echo -e "\t-out output.mp4"
) | bash
Hello world ! Segmentation fault (core dumped)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.