From cb7f9297bb2aebcfe0535267f571695acb14e645 Mon Sep 17 00:00:00 2001 From: Fabrice Quenneville Date: Sat, 21 Nov 2020 19:16:17 -0500 Subject: [PATCH] Working on documentation --- docs/_sources/usage/manual.rst.txt | 35 +++++- docs/_sources/usage/quickstart.rst.txt | 1 + docs/searchindex.js | 2 +- docs/usage/manual.html | 85 ++++++++++--- docs/usage/quickstart.html | 1 + docsource/build/doctrees/environment.pickle | Bin 20111 -> 23598 bytes docsource/build/doctrees/usage/manual.doctree | Bin 9664 -> 13722 bytes .../build/doctrees/usage/quickstart.doctree | Bin 5165 -> 5413 bytes .../build/html/_sources/usage/manual.rst.txt | 35 +++++- .../html/_sources/usage/quickstart.rst.txt | 1 + docsource/build/html/searchindex.js | 2 +- docsource/build/html/usage/manual.html | 85 ++++++++++--- docsource/build/html/usage/quickstart.html | 1 + .../_build/html/.doctrees/environment.pickle | Bin 20125 -> 23550 bytes .../html/.doctrees/usage/manual.doctree | Bin 9664 -> 12742 bytes .../html/.doctrees/usage/quickstart.doctree | Bin 5165 -> 5413 bytes .../_build/html/_sources/usage/manual.rst.txt | 107 +++++++++------- .../html/_sources/usage/quickstart.rst.txt | 1 + docsource/source/_build/html/searchindex.js | 2 +- .../source/_build/html/usage/manual.html | 117 ++++++++++++------ .../source/_build/html/usage/quickstart.html | 1 + docsource/source/usage/manual.rst | 107 +++++++++------- docsource/source/usage/quickstart.rst | 1 + 23 files changed, 403 insertions(+), 181 deletions(-) diff --git a/docs/_sources/usage/manual.rst.txt b/docs/_sources/usage/manual.rst.txt index 796951f..603544e 100644 --- a/docs/_sources/usage/manual.rst.txt +++ b/docs/_sources/usage/manual.rst.txt @@ -5,7 +5,7 @@ Manual Name ---- - MediaCurator +MediaCurator Synopsis -------- @@ -22,35 +22,68 @@ Synopsis Description ----------- +MediaCurator is a Python command line tool to manage a media database. + +* List all the video's and their information with or without filters +* Batch find and repair/convert videos with encoding errors +* Batch recode videos to more modern codecs (x265 / AV1) based on filters: extentions, codecs, resolutions ... + Options ------- list +==== + Print information convert +======= -del: +===== -in: +==== [any,avi,mkv,wmv,mpg,mp4,m4v,flv,vid] + -filters: +========= [fferror,old,lowres,hd,720p,1080p,uhd,mpeg,mpeg4,x264,wmv3,wmv] + -out: +===== [mkv/mp4,x265/av1] + -print: +======= [list,formated,verbose] + -dir: +===== ["/mnt/media/",,"/mnt/media2/"] + -files: +======= ["/mnt/media/video.avi",,"/mnt/media2/video2.mp4"] Examples -------- +.. code-block:: bash + + # List all videos with old codec in formated format + ./curator.py list -filters:old -print:formated -dir:/mnt/media/ >> ../medlist.txt + # Convert all videos with the codec mpeg4 in a mp4 using the av1 video codec and the delete the originals + ./curator.py convert -del -filters:mpeg4 -out:av1,mp4 -dir:"/mnt/media/Movies/" + # Convert any video with avi or mpg extensions, print formated text including ffmpeg's output and then delete the originals + ./curator.py convert -del -in:avi,mpg -print:formated,verbose -dir:/mnt/media/ + +More examples in :doc:`use_cases` See Also -------- +`FFmpeg `_ + Author ------ diff --git a/docs/_sources/usage/quickstart.rst.txt b/docs/_sources/usage/quickstart.rst.txt index 178a468..68cf34e 100644 --- a/docs/_sources/usage/quickstart.rst.txt +++ b/docs/_sources/usage/quickstart.rst.txt @@ -30,6 +30,7 @@ Examples: ./curator.py list -filters:old -print:formated -dir:/mnt/media/ >> ../medlist.txt # Convert all videos with the codec mpeg4 in a mp4 using the av1 video codec and the delete the originals ./curator.py convert -del -filters:mpeg4 -out:av1,mp4 -dir:"/mnt/media/Movies/" + # Convert any video with avi or mpg extensions, print formated text including ffmpeg's output and then delete the originals ./curator.py convert -del -in:avi,mpg -print:formated,verbose -dir:/mnt/media/ More examples in :doc:`use_cases` \ No newline at end of file diff --git a/docs/searchindex.js b/docs/searchindex.js index e09368d..3a91b8f 100644 --- a/docs/searchindex.js +++ b/docs/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["index","usage/errors","usage/installation","usage/manual","usage/quickstart","usage/use_cases","usage/warnings"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,sphinx:56},filenames:["index.rst","usage/errors.rst","usage/installation.rst","usage/manual.rst","usage/quickstart.rst","usage/use_cases.rst","usage/warnings.rst"],objects:{},objnames:{},objtypes:{},terms:{"1080p":[3,4],"720p":[3,4],"case":[0,4],"default":[3,4],"try":1,"while":1,For:2,The:0,Use:[0,4],acquaint:6,activ:1,after:1,again:[1,6],all:[0,4,6],also:[0,1],ani:[3,4],audio:1,author:0,av1:[0,3,4],avi:[3,4],base:0,bash:[],batch:0,befor:6,behavior:6,big:1,big_valu:1,bug:0,can:[0,1,6],chapter:1,clean:1,clone:2,code:0,codec:[0,4],com:2,comma:[3,4],command:[0,6],content:0,convert:[0,3,4,6],curat:[3,4,6],damag:[1,6],databas:0,decod:1,del:[3,4,6],delet:[4,6],depend:1,descript:0,detect:1,dir:[3,4,6],distribut:[1,2],don:1,done:6,doubl:[3,4],download:2,dry:6,encod:[0,6],error:[0,6],exampl:[0,1,4],expect:6,experi:1,extent:0,fabquennevil:2,fabric:3,face:1,failur:1,featur:[1,6],feel:1,few:[1,6],fferror:[3,4,6],ffmpeg:0,file:[3,4,6],filenam:[3,4],filter:[0,3,4,6],find:0,flag:6,flv:[3,4],folder:6,format:[3,4],found:[0,1],frame:1,free:1,from:0,get:6,git:2,github:[0,1],gnu:2,happen:1,have:6,header:1,here:[1,6],http:2,index:[],inform:[0,1],instal:0,irrecover:6,irrirrepar:6,issu:0,its:1,latest:1,librari:6,like:1,line:0,linux:2,list:[0,3,4,6],lowr:[3,4,6],m4v:[3,4],mai:1,manag:0,manual:0,media2:[3,4],media:[0,3,4,6],mediacur:[1,2,3,6],medlist:[3,4],miss:1,mkv:[3,4],mnt:[3,4,6],modern:0,modul:[],more:[0,4],most:1,move:1,movi:[3,4],mp4:[3,4],mpeg4:[3,4],mpeg:[1,3,4],mpg:[3,4],multipl:[3,4],name:0,necessarli:1,next:1,non:6,now:2,occur:1,old:[1,3,4],onli:2,open:1,option:[0,1,4],origin:4,other:0,out:[3,4],output:1,packag:2,page:[],pip:2,pleas:6,possibl:1,print:[1,3,4],project:1,properli:6,python:0,quennevil:3,quickstart:0,quit:1,raw:1,recod:0,recur:1,referenc:1,repair:[0,6],report:1,repositori:1,requir:2,resolut:0,run:[1,6],search:[],see:0,segfault:1,sei:1,separ:[3,4],serv:1,some:1,sourc:[0,1],step:1,subsd:6,substandard:6,suggest:1,synopsi:0,take:1,thi:2,too:1,tool:0,track:1,txt:[2,3,4],type:1,uhd:[3,4],unintend:6,until:6,updat:1,use:[3,4,6],used:[1,6],using:[1,4,6],valu:[3,4],valuabl:6,verbos:[1,3,4],veri:1,version:1,vid:[3,4],video2:3,video:[0,1,3,4,6],want:1,warn:0,when:[1,6],wich:1,without:0,wmv3:[3,4],wmv:[3,4],work:2,x264:[3,4],x265:[0,3,4],you:[1,6],your:[1,6]},titles:["Welcome to MediaCurator\u2019s documentation!","Errors","Installation","Manual","Quickstart","Use cases","Warnings"],titleterms:{"case":5,Use:5,also:3,author:3,bug:1,descript:3,document:0,encod:1,error:1,exampl:3,ffmpeg:[1,2],from:2,github:2,indic:[],instal:2,issu:1,manual:3,mediacur:0,name:3,option:3,other:1,quickstart:4,repair:1,see:3,synopsi:3,tabl:[],warn:6,welcom:0}}) \ No newline at end of file +Search.setIndex({docnames:["index","usage/errors","usage/installation","usage/manual","usage/quickstart","usage/use_cases","usage/warnings"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,sphinx:56},filenames:["index.rst","usage/errors.rst","usage/installation.rst","usage/manual.rst","usage/quickstart.rst","usage/use_cases.rst","usage/warnings.rst"],objects:{},objnames:{},objtypes:{},terms:{"1080p":[3,4],"720p":[3,4],"case":[0,3,4],"default":[3,4],"try":1,"while":1,For:2,The:0,Use:[0,3,4],acquaint:6,activ:1,after:1,again:[1,6],all:[0,3,4,6],also:[0,1],ani:[3,4],audio:1,author:0,av1:[0,3,4],avi:[3,4],base:[0,3],bash:[],batch:[0,3],befor:6,behavior:6,big:1,big_valu:1,bug:0,can:[0,1,6],chapter:1,clean:1,clone:2,code:0,codec:[0,3,4],com:2,comma:[3,4],command:[0,3,6],content:0,convert:[0,4,6],curat:[3,4,6],damag:[1,6],databas:[0,3],decod:1,del:[4,6],delet:[3,4,6],depend:1,descript:0,detect:1,dir:[4,6],distribut:[1,2],don:1,done:6,doubl:[3,4],download:2,dry:6,encod:[0,3,6],error:[0,3,6],exampl:[0,1,4],expect:6,experi:1,extens:[3,4],extent:[0,3],fabquennevil:2,fabric:3,face:1,failur:1,featur:[1,6],feel:1,few:[1,6],fferror:[3,4,6],ffmpeg:[0,3,4],file:[4,6],filenam:[3,4],filter:[0,4,6],find:[0,3],flag:6,flv:[3,4],folder:6,format:[3,4],found:[0,1],frame:1,free:1,from:0,get:6,git:2,github:[0,1],gnu:2,happen:1,have:6,header:1,here:[1,6],http:2,includ:[3,4],index:[],inform:[0,1,3],instal:0,irrecover:6,irrirrepar:6,issu:0,its:1,latest:1,librari:6,like:1,line:[0,3],linux:2,list:[0,4,6],lowr:[3,4,6],m4v:[3,4],mai:1,manag:[0,3],manual:0,media2:[3,4],media:[0,3,4,6],mediacur:[1,2,3,6],medlist:[3,4],miss:1,mkv:[3,4],mnt:[3,4,6],modern:[0,3],modul:[],more:[0,3,4],most:1,move:1,movi:[3,4],mp4:[3,4],mpeg4:[3,4],mpeg:[1,3,4],mpg:[3,4],multipl:[3,4],name:0,necessarli:1,next:1,non:6,now:2,occur:1,old:[1,3,4],onli:2,open:1,option:[0,1,4],origin:[3,4],other:0,out:4,output:[1,3,4],packag:2,page:[],pip:2,pleas:6,possibl:1,print:[1,4],project:1,properli:6,python:[0,3],quennevil:3,quickstart:0,quit:1,raw:1,recod:[0,3],recur:1,referenc:1,repair:[0,3,6],report:1,repositori:1,requir:2,resolut:[0,3],run:[1,6],search:[],see:0,segfault:1,sei:1,separ:[3,4],serv:1,some:1,sourc:[0,1],step:1,subsd:6,substandard:6,suggest:1,synopsi:0,take:1,text:[3,4],thi:2,too:1,tool:[0,3],track:1,txt:[2,3,4],type:1,uhd:[3,4],unintend:6,until:6,updat:1,use:[3,4,6],used:[1,6],using:[1,3,4,6],valu:[3,4],valuabl:6,verbos:[1,3,4],veri:1,version:1,vid:[3,4],video2:3,video:[0,1,3,4,6],want:1,warn:0,when:[1,6],wich:1,without:[0,3],wmv3:[3,4],wmv:[3,4],work:2,x264:[3,4],x265:[0,3,4],you:[1,6],your:[1,6]},titles:["Welcome to MediaCurator\u2019s documentation!","Errors","Installation","Manual","Quickstart","Use cases","Warnings"],titleterms:{"case":5,Use:5,also:3,author:3,bug:1,convert:3,del:3,descript:3,dir:3,document:0,encod:1,error:1,exampl:3,ffmpeg:[1,2],file:3,filter:3,from:2,github:2,indic:[],instal:2,issu:1,list:3,manual:3,mediacur:0,name:3,option:3,other:1,out:3,print:3,quickstart:4,repair:1,see:3,synopsi:3,tabl:[],warn:6,welcom:0}}) \ No newline at end of file diff --git a/docs/usage/manual.html b/docs/usage/manual.html index c90243a..92069df 100644 --- a/docs/usage/manual.html +++ b/docs/usage/manual.html @@ -38,9 +38,7 @@

Manual

Name

-
-

MediaCurator

-
+

MediaCurator

Synopsis

@@ -55,32 +53,79 @@

Description

+

MediaCurator is a Python command line tool to manage a media database.

+
    +
  • List all the video’s and their information with or without filters

  • +
  • Batch find and repair/convert videos with encoding errors

  • +
  • Batch recode videos to more modern codecs (x265 / AV1) based on filters: extentions, codecs, resolutions …

  • +

Options

-

list

-

convert

-

-del:

-
-
-in:

[any,avi,mkv,wmv,mpg,mp4,m4v,flv,vid]

-
-
-filters:

[fferror,old,lowres,hd,720p,1080p,uhd,mpeg,mpeg4,x264,wmv3,wmv]

-
-
-out:

[mkv/mp4,x265/av1]

-
-
-print:

[list,formated,verbose]

-
-
-dir:

[“/mnt/media/”,,”/mnt/media2/”]

-
-
-files:

[“/mnt/media/video.avi”,,”/mnt/media2/video2.mp4”]

-
-
+
+

list

+
+

Print information

+
+
+
+

convert

+
+
+

-del:

+
+
+

-in:

+
+

[any,avi,mkv,wmv,mpg,mp4,m4v,flv,vid]

+
+
+
+

-filters:

+
+

[fferror,old,lowres,hd,720p,1080p,uhd,mpeg,mpeg4,x264,wmv3,wmv]

+
+
+
+

-out:

+
+

[mkv/mp4,x265/av1]

+
+
+
+

-print:

+
+

[list,formated,verbose]

+
+
+
+

-dir:

+
+

[“/mnt/media/”,,”/mnt/media2/”]

+
+
+
+

-files:

+
+

[“/mnt/media/video.avi”,,”/mnt/media2/video2.mp4”]

+
+

Examples

+
# List all videos with old codec in formated format
+./curator.py list -filters:old -print:formated -dir:/mnt/media/ >> ../medlist.txt
+# Convert all videos with the codec mpeg4 in a mp4 using the av1 video codec and the delete the originals
+./curator.py convert -del -filters:mpeg4 -out:av1,mp4 -dir:"/mnt/media/Movies/"
+# Convert any video with avi or mpg extensions, print formated text including ffmpeg's output and then delete the originals
+./curator.py convert -del -in:avi,mpg -print:formated,verbose -dir:/mnt/media/
+
+
+

More examples in Use cases

See Also

+

FFmpeg

Author

diff --git a/docs/usage/quickstart.html b/docs/usage/quickstart.html index 198e8ea..bdaeccc 100644 --- a/docs/usage/quickstart.html +++ b/docs/usage/quickstart.html @@ -57,6 +57,7 @@ ./curator.py list -filters:old -print:formated -dir:/mnt/media/ >> ../medlist.txt # Convert all videos with the codec mpeg4 in a mp4 using the av1 video codec and the delete the originals ./curator.py convert -del -filters:mpeg4 -out:av1,mp4 -dir:"/mnt/media/Movies/" +# Convert any video with avi or mpg extensions, print formated text including ffmpeg's output and then delete the originals ./curator.py convert -del -in:avi,mpg -print:formated,verbose -dir:/mnt/media/
diff --git a/docsource/build/doctrees/environment.pickle b/docsource/build/doctrees/environment.pickle index a09a897d2725e098e783abfb705f0f7ddb5397ea..4ade3133bf15d75faf0386bb9a882809cc8ae5fa 100644 GIT binary patch delta 6049 zcmbVQYfMx}6z1--4`oGHLV*Q&El=SJ3%a{t5m4UCLnKh!h>FW9JJJPrS(P*fH9jK= z#B;T+(P;XoY13L7Q)5jU)WjxDnxaIZAf*xm`}zHV+&zI2 zc!Y74)79_Tec`5|MF}g@4UnFmlz_g?e36J66frT4wYMH^&(E$qe!-r;HWo4}lVI4m z817`h1!ik9e4U-3&?@0xb`M-LHYn0a(+1r+Z*XZamGhXZhw7y!sLIcWXSoKh2KOw` zmS@mbDq~{2ThMa2TAu_{rc|yPx01O!Qo=o>3Vz5d=eEu$*Ti+>;phYG4zgpJHEx5i zzgdLrsaUM;6(Qj&Z;*g(FR0><&43kvqHsw7;E@o(gJS=H&pq(lDH0gi%c+GOrvrQ_d2!H6l(5>tS+{3 z4`&ox<8JyKypLtrwV!-~dstwF*DCbt+ajiHNdDzbinv(VS5%7qD1ZaYl5~DZE%{(x z5P+!?C3+MaJIf&q_WqJ0MG3{eTk>iEZm|TnP?YEbap9v<8#j$hi%Jy3Xwj;8)P)V> zgxMKB(kkGytUC0)FVappS7w5ZWwkh&&Xsj)?G#3wD_s>1&$wn}$UfqBz^2?3Fqhvj z948C~Qk*2kJES;8iqnv@d_VUdyuZAk+lRrd@LOR5XNUDGn&E7jH6DG2M`0It1-h6b z$;A$H7WWP8FuS?0aA|@>OC}7P%V3)&8Sa}a;F2Ygn@uIDc1C3~bXeze&mg111jnqk z+*91LLYgIodxBfd++(qS$+Ad28r~7JHN~>fmo!UN#Q8q-Ay(QW6d*nR(kq|@S|!pd ziB>7_U0o_1txSP8ixw}-XVFxG-jc)Tu&98oV#%^B77ZnQY)Ms<-7CzZOtB&(rb8Fx z>ml&DlxRM!3TahDD;~2i-Z;?YMHh*MHCRePdRRb2tQm+^K8P+6BFwg!Rh7Z-X0d~v z<>6FS{FvWQFN?mspKfLdcu=KR4~c5B`_aUzeEu{GDkfGsHtHH0_BcI)WG>!ifs*HV zGBU(`0r`^RZq+N{_|2=~`74nT0|3dyP1Ym^OxzbN`tqbMGeZPVT#Dr9rh@U>T>b$I zu9%Z?tM%Rfocx(ZU!K|>5n}GO(;7SI^o$4xg?$3q;LhU3J5EJ(`Kr{xJ7A z<(;k&=2S$9?})~j&lVxBG&)^U-Yym#dEVQjg3yS{hzGLe&OPNl^Z2dK!4Zes6GA>f zP9tz4DzmdzY39#BOT%!S1x!8+6OkYoGk?fC5)uLxFUlzW&m)^UPPdf$i^zWaH*0z7&!T}~n0vfL9ieMqL-qtBrSx-|>8p(*fHVNvEKu?R z$cPLPGWTP2?j62sTi8QOpw)8Rp)sK6rk8-QDr4YLl_uP&SGgvi?~csMpBeaEQ38k7 zEDAXFu4B;;r0Bm^budE&pL(S)N_*<^`B4^BOsqP9)J_&%c~Tx`i14J;@U%XgKf{75 z9^^+F0%z+Ki@rRux0xXbu`znNe2F~vF9mx2ehG+~rBJyxietO)$QsDL9Bwq)I6Y)G z)rWh58f!{}>rI8};AaHS1Sk9b_hj zg%nmTOtj{XmE(2+3jQ{(Ya8nK4mvWM$vd?$g70r3BTx-iJ1iU$wj375)gDKm+dd$m z1}q$CLb8x?UE-k3wfKEJ08!_6s8I{mZJnl4;v6XknhptQ73o#a_K1NQEBIR*>9uR& aYTIB!FK$n68Q1g=(w_xduZ5cSj{gDXOJi;T delta 3488 zcmbVPZA?>F80HpxTUSJo51}Bol+xC6DJ?>84T!i1B2rW)Uxv5}9dIP5T&i1~V;H9~ z=?3y%Kc>!%C0leqoQsJOlZBb=$FgN{KejQ6AKU)8C1!pkn3{?3iS1M_jXEhSliv(5qwh) z&sRG_QgCy7KnhCde>Sd(&q`9gJ3`&^`3gYEqc53-pEp zJu*3iEF>Mwd7p9V@NM3Gt^zLGn_-XB$SuQ~8#d>g^h;HIA>4Cja>X#3p8@CG85*)2 z+~Oj*n_mon*gSCCYJ<0JnTC2Ct@5@_G4KhbG2(2Ua_S(%>~`4a zP>C}gIWfe0pG7<{?OZ_KiOi<*2jQ~SiBfbUOHy>InrRot79H)Hrbr}b)WAYCKZR5> z3cu&{aH{4ZQz~RS4cs{F5Zo|PV51p>4Q>&xIF0%-6+275S_^7nyWm08TEmq{px2Sf zn?QbvI403iqn}Wzp2|;hp?kzdIqYz`V$~5qus4*AACT+_2MA z31cN9-0>LoZ7NPpz897hKQxBXMLwWrn3@r4WNMB;+0wn-Nf=++!R`;V)uL8q%bICV={%AU@#IW-QX-x##gj;k=%L#`cCzSFHkGA$7e!V_y)rgH zKF7g(WII`mJ#8{EtA#}^tZHEcb439ze7#7@(W3^omWklds&svg8s03sWpnvrp_hr% zTp_@(<%!;COk0`o7*lN*3qr|8h+Lrg^+Xa8RAoK2bAMQF6Gm9*G0PP(VuqNoR7{u! z!6v49g&yxJro#;vTDiarq8(6`Dc%Hc6i`^Nq6heI5z|^&&UIH({ z5j}9LUS{2C>7gxvw6T`c!}!Kk&wFCzG-f;K3uFlIMf#cd!9rkSj#lMQ1HWXGUPuUC4P`-zM$KRL`pa&xiysM0v5*we`9Cm&+{AUTc} zZ{m|Y1e+zzDIO-9Ewp&j++aS1eS2i`jasZl(%QICIKEHnS7yOcQcFG^e4-^=bCrj& zmIBQr54T!MlW!n~+@$6=YJTUTu+=(n4eNID|GscS-L{TUPta7O{I~SWgYt|Kb-nv44UU?w)%#^~ ti?;rpZqW&*X2HIHY3l(GuW#x};dS_xwuE&ZJ#TdP1SOepI=H#1{y*1nv`qj2 diff --git a/docsource/build/doctrees/usage/manual.doctree b/docsource/build/doctrees/usage/manual.doctree index ff5b59ef0ba189f29f6f79cf3b89c0a6c695da16..407d1e50d94fb71c8a152de885feaafd7bcf4a38 100644 GIT binary patch literal 13722 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 Jb}o5q{g)YieYyYu delta 2083 zcma)-duUr#9LIZadha|jeVQ(9`dFJKOPVG$TicaZq|z4~T_Z#Ghtt|7YsN2GlXPiP zCTzHFA~-T_JsAT#buyTg`KrZ#hQlHLAydJ>bWE5lO2r4v;(vnE-#MrEw0D%^KPTMZ z{XRbTk#pZTc5_HOtzG!Uv#9;8&`Tu^^dDtF8-!Zurw7%>l3u8T7N{S31SdT>aan31 zKqI9!bXJ|#VmLiQ?^Oj=7+dPLL{(*q&g`tG*R_2m$Jd-Cs2QVW`Y287d$kLAM46)k zW&K%L@u}=+JR3_E zXrXzgaH`+~E$`faHs_u?#y;Bjw2b7iO=rn;N>mcGWJN{Eo~dZ(UE` zkOw+!8!6y*|56V0mhDj*ZK|W+>cyo7?oOypC<+~GYG7mSUzYc}tI_l8hJqC=_)QY- z4<3zAAl4LOE>`wieDEiARECIKDJsG+mkje7kZv3|;MrU>QG`E6l4N_g@)GF~?l$R` zgdTK<Y!95+v$vx)GQAsb2i_7! zU1j%?r$z5USsc+V09&$r{AAJ6o{M)tn=%!hK)5B`b6PA;+Bc4ri?}o;oT7EB?u} zpYdP;x58?=?CesU^rO;x+Ewczbt?ZWIaNAa9(v5dj@CE25ZmZFT?0yp>*rk_(joM1 zLLV~g+nIjeJ)pGHWp@t=3+(}}weL4;JNfpP^z@VGgzPYr1*(nRq6@FjuyE-EPg+f= zG`;JHlA@zcJ8U`dCnkg!*nsUS(*ESb_Ac)rIV;pN=B8e=G(*4ko={$6i6NMQGjR45 zcqv~TjZ8rSUOrX8S};Br{bp+)E%-v@9ntc(xn;;K%`8F2V yc}$o`gtGLrGBIo24K}O|VC@)Ofmz-O3!;#{rJ|6%f4mT1m8C=N1Im9}FLi7H diff --git a/docsource/build/doctrees/usage/quickstart.doctree b/docsource/build/doctrees/usage/quickstart.doctree index 29d5c2a587420588b12db1bad4862b96bdba4674..47631ed686588103abcee6a3b444b0c5085ab9d3 100644 GIT binary patch delta 285 zcmZ3hu~dt-fpw~s=tkBkb|x;S&57(zjA_aW&iQ#|sYN9UiFuU@Wtl0d`3mKkB^e5d zWtj^3MGCnE=?bY8C8>GEnfZCeItm3vnRz7&Y57IDi6yBi3MD`}h0MI88O_wwp6DsSG!o6QaY Dv> ../medlist.txt + # Convert all videos with the codec mpeg4 in a mp4 using the av1 video codec and the delete the originals + ./curator.py convert -del -filters:mpeg4 -out:av1,mp4 -dir:"/mnt/media/Movies/" + # Convert any video with avi or mpg extensions, print formated text including ffmpeg's output and then delete the originals + ./curator.py convert -del -in:avi,mpg -print:formated,verbose -dir:/mnt/media/ + +More examples in :doc:`use_cases` See Also -------- +`FFmpeg `_ + Author ------ diff --git a/docsource/build/html/_sources/usage/quickstart.rst.txt b/docsource/build/html/_sources/usage/quickstart.rst.txt index 178a468..68cf34e 100644 --- a/docsource/build/html/_sources/usage/quickstart.rst.txt +++ b/docsource/build/html/_sources/usage/quickstart.rst.txt @@ -30,6 +30,7 @@ Examples: ./curator.py list -filters:old -print:formated -dir:/mnt/media/ >> ../medlist.txt # Convert all videos with the codec mpeg4 in a mp4 using the av1 video codec and the delete the originals ./curator.py convert -del -filters:mpeg4 -out:av1,mp4 -dir:"/mnt/media/Movies/" + # Convert any video with avi or mpg extensions, print formated text including ffmpeg's output and then delete the originals ./curator.py convert -del -in:avi,mpg -print:formated,verbose -dir:/mnt/media/ More examples in :doc:`use_cases` \ No newline at end of file diff --git a/docsource/build/html/searchindex.js b/docsource/build/html/searchindex.js index e09368d..3a91b8f 100644 --- a/docsource/build/html/searchindex.js +++ b/docsource/build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["index","usage/errors","usage/installation","usage/manual","usage/quickstart","usage/use_cases","usage/warnings"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,sphinx:56},filenames:["index.rst","usage/errors.rst","usage/installation.rst","usage/manual.rst","usage/quickstart.rst","usage/use_cases.rst","usage/warnings.rst"],objects:{},objnames:{},objtypes:{},terms:{"1080p":[3,4],"720p":[3,4],"case":[0,4],"default":[3,4],"try":1,"while":1,For:2,The:0,Use:[0,4],acquaint:6,activ:1,after:1,again:[1,6],all:[0,4,6],also:[0,1],ani:[3,4],audio:1,author:0,av1:[0,3,4],avi:[3,4],base:0,bash:[],batch:0,befor:6,behavior:6,big:1,big_valu:1,bug:0,can:[0,1,6],chapter:1,clean:1,clone:2,code:0,codec:[0,4],com:2,comma:[3,4],command:[0,6],content:0,convert:[0,3,4,6],curat:[3,4,6],damag:[1,6],databas:0,decod:1,del:[3,4,6],delet:[4,6],depend:1,descript:0,detect:1,dir:[3,4,6],distribut:[1,2],don:1,done:6,doubl:[3,4],download:2,dry:6,encod:[0,6],error:[0,6],exampl:[0,1,4],expect:6,experi:1,extent:0,fabquennevil:2,fabric:3,face:1,failur:1,featur:[1,6],feel:1,few:[1,6],fferror:[3,4,6],ffmpeg:0,file:[3,4,6],filenam:[3,4],filter:[0,3,4,6],find:0,flag:6,flv:[3,4],folder:6,format:[3,4],found:[0,1],frame:1,free:1,from:0,get:6,git:2,github:[0,1],gnu:2,happen:1,have:6,header:1,here:[1,6],http:2,index:[],inform:[0,1],instal:0,irrecover:6,irrirrepar:6,issu:0,its:1,latest:1,librari:6,like:1,line:0,linux:2,list:[0,3,4,6],lowr:[3,4,6],m4v:[3,4],mai:1,manag:0,manual:0,media2:[3,4],media:[0,3,4,6],mediacur:[1,2,3,6],medlist:[3,4],miss:1,mkv:[3,4],mnt:[3,4,6],modern:0,modul:[],more:[0,4],most:1,move:1,movi:[3,4],mp4:[3,4],mpeg4:[3,4],mpeg:[1,3,4],mpg:[3,4],multipl:[3,4],name:0,necessarli:1,next:1,non:6,now:2,occur:1,old:[1,3,4],onli:2,open:1,option:[0,1,4],origin:4,other:0,out:[3,4],output:1,packag:2,page:[],pip:2,pleas:6,possibl:1,print:[1,3,4],project:1,properli:6,python:0,quennevil:3,quickstart:0,quit:1,raw:1,recod:0,recur:1,referenc:1,repair:[0,6],report:1,repositori:1,requir:2,resolut:0,run:[1,6],search:[],see:0,segfault:1,sei:1,separ:[3,4],serv:1,some:1,sourc:[0,1],step:1,subsd:6,substandard:6,suggest:1,synopsi:0,take:1,thi:2,too:1,tool:0,track:1,txt:[2,3,4],type:1,uhd:[3,4],unintend:6,until:6,updat:1,use:[3,4,6],used:[1,6],using:[1,4,6],valu:[3,4],valuabl:6,verbos:[1,3,4],veri:1,version:1,vid:[3,4],video2:3,video:[0,1,3,4,6],want:1,warn:0,when:[1,6],wich:1,without:0,wmv3:[3,4],wmv:[3,4],work:2,x264:[3,4],x265:[0,3,4],you:[1,6],your:[1,6]},titles:["Welcome to MediaCurator\u2019s documentation!","Errors","Installation","Manual","Quickstart","Use cases","Warnings"],titleterms:{"case":5,Use:5,also:3,author:3,bug:1,descript:3,document:0,encod:1,error:1,exampl:3,ffmpeg:[1,2],from:2,github:2,indic:[],instal:2,issu:1,manual:3,mediacur:0,name:3,option:3,other:1,quickstart:4,repair:1,see:3,synopsi:3,tabl:[],warn:6,welcom:0}}) \ No newline at end of file +Search.setIndex({docnames:["index","usage/errors","usage/installation","usage/manual","usage/quickstart","usage/use_cases","usage/warnings"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,sphinx:56},filenames:["index.rst","usage/errors.rst","usage/installation.rst","usage/manual.rst","usage/quickstart.rst","usage/use_cases.rst","usage/warnings.rst"],objects:{},objnames:{},objtypes:{},terms:{"1080p":[3,4],"720p":[3,4],"case":[0,3,4],"default":[3,4],"try":1,"while":1,For:2,The:0,Use:[0,3,4],acquaint:6,activ:1,after:1,again:[1,6],all:[0,3,4,6],also:[0,1],ani:[3,4],audio:1,author:0,av1:[0,3,4],avi:[3,4],base:[0,3],bash:[],batch:[0,3],befor:6,behavior:6,big:1,big_valu:1,bug:0,can:[0,1,6],chapter:1,clean:1,clone:2,code:0,codec:[0,3,4],com:2,comma:[3,4],command:[0,3,6],content:0,convert:[0,4,6],curat:[3,4,6],damag:[1,6],databas:[0,3],decod:1,del:[4,6],delet:[3,4,6],depend:1,descript:0,detect:1,dir:[4,6],distribut:[1,2],don:1,done:6,doubl:[3,4],download:2,dry:6,encod:[0,3,6],error:[0,3,6],exampl:[0,1,4],expect:6,experi:1,extens:[3,4],extent:[0,3],fabquennevil:2,fabric:3,face:1,failur:1,featur:[1,6],feel:1,few:[1,6],fferror:[3,4,6],ffmpeg:[0,3,4],file:[4,6],filenam:[3,4],filter:[0,4,6],find:[0,3],flag:6,flv:[3,4],folder:6,format:[3,4],found:[0,1],frame:1,free:1,from:0,get:6,git:2,github:[0,1],gnu:2,happen:1,have:6,header:1,here:[1,6],http:2,includ:[3,4],index:[],inform:[0,1,3],instal:0,irrecover:6,irrirrepar:6,issu:0,its:1,latest:1,librari:6,like:1,line:[0,3],linux:2,list:[0,4,6],lowr:[3,4,6],m4v:[3,4],mai:1,manag:[0,3],manual:0,media2:[3,4],media:[0,3,4,6],mediacur:[1,2,3,6],medlist:[3,4],miss:1,mkv:[3,4],mnt:[3,4,6],modern:[0,3],modul:[],more:[0,3,4],most:1,move:1,movi:[3,4],mp4:[3,4],mpeg4:[3,4],mpeg:[1,3,4],mpg:[3,4],multipl:[3,4],name:0,necessarli:1,next:1,non:6,now:2,occur:1,old:[1,3,4],onli:2,open:1,option:[0,1,4],origin:[3,4],other:0,out:4,output:[1,3,4],packag:2,page:[],pip:2,pleas:6,possibl:1,print:[1,4],project:1,properli:6,python:[0,3],quennevil:3,quickstart:0,quit:1,raw:1,recod:[0,3],recur:1,referenc:1,repair:[0,3,6],report:1,repositori:1,requir:2,resolut:[0,3],run:[1,6],search:[],see:0,segfault:1,sei:1,separ:[3,4],serv:1,some:1,sourc:[0,1],step:1,subsd:6,substandard:6,suggest:1,synopsi:0,take:1,text:[3,4],thi:2,too:1,tool:[0,3],track:1,txt:[2,3,4],type:1,uhd:[3,4],unintend:6,until:6,updat:1,use:[3,4,6],used:[1,6],using:[1,3,4,6],valu:[3,4],valuabl:6,verbos:[1,3,4],veri:1,version:1,vid:[3,4],video2:3,video:[0,1,3,4,6],want:1,warn:0,when:[1,6],wich:1,without:[0,3],wmv3:[3,4],wmv:[3,4],work:2,x264:[3,4],x265:[0,3,4],you:[1,6],your:[1,6]},titles:["Welcome to MediaCurator\u2019s documentation!","Errors","Installation","Manual","Quickstart","Use cases","Warnings"],titleterms:{"case":5,Use:5,also:3,author:3,bug:1,convert:3,del:3,descript:3,dir:3,document:0,encod:1,error:1,exampl:3,ffmpeg:[1,2],file:3,filter:3,from:2,github:2,indic:[],instal:2,issu:1,list:3,manual:3,mediacur:0,name:3,option:3,other:1,out:3,print:3,quickstart:4,repair:1,see:3,synopsi:3,tabl:[],warn:6,welcom:0}}) \ No newline at end of file diff --git a/docsource/build/html/usage/manual.html b/docsource/build/html/usage/manual.html index c90243a..92069df 100644 --- a/docsource/build/html/usage/manual.html +++ b/docsource/build/html/usage/manual.html @@ -38,9 +38,7 @@

Manual

Name

-
-

MediaCurator

-
+

MediaCurator

Synopsis

@@ -55,32 +53,79 @@

Description

+

MediaCurator is a Python command line tool to manage a media database.

+
    +
  • List all the video’s and their information with or without filters

  • +
  • Batch find and repair/convert videos with encoding errors

  • +
  • Batch recode videos to more modern codecs (x265 / AV1) based on filters: extentions, codecs, resolutions …

  • +

Options

-

list

-

convert

-

-del:

-
-
-in:

[any,avi,mkv,wmv,mpg,mp4,m4v,flv,vid]

-
-
-filters:

[fferror,old,lowres,hd,720p,1080p,uhd,mpeg,mpeg4,x264,wmv3,wmv]

-
-
-out:

[mkv/mp4,x265/av1]

-
-
-print:

[list,formated,verbose]

-
-
-dir:

[“/mnt/media/”,,”/mnt/media2/”]

-
-
-files:

[“/mnt/media/video.avi”,,”/mnt/media2/video2.mp4”]

-
-
+
+

list

+
+

Print information

+
+
+
+

convert

+
+
+

-del:

+
+
+

-in:

+
+

[any,avi,mkv,wmv,mpg,mp4,m4v,flv,vid]

+
+
+
+

-filters:

+
+

[fferror,old,lowres,hd,720p,1080p,uhd,mpeg,mpeg4,x264,wmv3,wmv]

+
+
+
+

-out:

+
+

[mkv/mp4,x265/av1]

+
+
+
+

-print:

+
+

[list,formated,verbose]

+
+
+
+

-dir:

+
+

[“/mnt/media/”,,”/mnt/media2/”]

+
+
+
+

-files:

+
+

[“/mnt/media/video.avi”,,”/mnt/media2/video2.mp4”]

+
+

Examples

+
# List all videos with old codec in formated format
+./curator.py list -filters:old -print:formated -dir:/mnt/media/ >> ../medlist.txt
+# Convert all videos with the codec mpeg4 in a mp4 using the av1 video codec and the delete the originals
+./curator.py convert -del -filters:mpeg4 -out:av1,mp4 -dir:"/mnt/media/Movies/"
+# Convert any video with avi or mpg extensions, print formated text including ffmpeg's output and then delete the originals
+./curator.py convert -del -in:avi,mpg -print:formated,verbose -dir:/mnt/media/
+
+
+

More examples in Use cases

See Also

+

FFmpeg

Author

diff --git a/docsource/build/html/usage/quickstart.html b/docsource/build/html/usage/quickstart.html index 198e8ea..bdaeccc 100644 --- a/docsource/build/html/usage/quickstart.html +++ b/docsource/build/html/usage/quickstart.html @@ -57,6 +57,7 @@ ./curator.py list -filters:old -print:formated -dir:/mnt/media/ >> ../medlist.txt # Convert all videos with the codec mpeg4 in a mp4 using the av1 video codec and the delete the originals ./curator.py convert -del -filters:mpeg4 -out:av1,mp4 -dir:"/mnt/media/Movies/" +# Convert any video with avi or mpg extensions, print formated text including ffmpeg's output and then delete the originals ./curator.py convert -del -in:avi,mpg -print:formated,verbose -dir:/mnt/media/
diff --git a/docsource/source/_build/html/.doctrees/environment.pickle b/docsource/source/_build/html/.doctrees/environment.pickle index c0dd1b9fd501f043c34b0b9293b65e82e3d733e8..b677320d9b17eb3efaaff171cb85fc47ec6d9606 100644 GIT binary patch delta 1802 zcmZ{lU2NM_6vtyHsZFVdih*Wf>c_mL4Q)CNSXN4+l5|PCCe0|7CZuUXNn=`H9H+JG zF@z?%hkXf8Ogfh#AytFNN=R(71mbO#5O0W86nFuNjj@7|kQhTeAR+Fx6T6GY%k??u z{?GsC6WcedtIWTjGU1i*yMG?L7CsT}s+CovtYGsILod%u`wU%rWv;AC@If@v-Qmt#)q)p;FmL?7eKu&h?4lh#kssbI9lL&p=D?|zr>q_-}^MpWpc8Tw-B z_H~qF0|A=7mZ?3z220&n9`&`pL+!0(j~;|0VjMPizX{zV5m?_Xz)A6CCI=hh7L&6+ z+an1?&}Ah@HW;GVY4wa&7_xos-~ov58-;tK0HM?@seG7>Sc|C`*|gqE8&q?8T(Ek_ z6dGQ9;Ts}<4&KkyNXBOk_&lZbD6+nc&*0Pe6dpiV$W5CeyM)$AjQ)Z3^nO@LKha0$ zG26@P+(KPb%QXp`VbK;E=o6|;!!P4msAb!kzktbPnY*w)cC??HtE(p@t%cxL9Y{|b zbf)sdegZEx+nbOeA=x*!3x3Rx*tne}YT(3hqADq)_m9)4Ic?)Ms@IPSiKG)ZG4O5P znI-L+_k|L&+T!h$9P4@8I_|d)in8iDy8~3+0m>d@@S()3va&2`dJAY<-J!j0)1rPF zFFFp;mlc@vF64{{A-_`HSZ)C{YL5BGw)sh7{j+@JV%9uNKbKh4WVIFKRvpyW zHfqR^Y7^~lKkSAJ`_hBaCogNhne3Va`uqQ9A}T-To{Raz!;qQCuPe1a9k=SBp5*BJ z9C^@8w3|K|Hp0Qp{6YExvyam-!`%%B0!BrG%-GX#Y@(gp+?HR>o@WcTtNlqQ*h#NF zN5cuYo_z_-Lov4Q$pqMui?WI*m7CHT2n$o5GAbZJ^UF0m{$h6S`3Z2&QWP;uM zJx9L08Tz6BKqA0#=fI%fVhPXWXVM>q(>MOLXoxNex(xHMTHO0qoWuj@{yno}x?VLDsrN8F z_VF?~8(S18N!rfgv$%2&n{B#O*5(#4N|EBiBzmCb!?U)i_eJstw9T=@yP-4>)6+Bi xWAx_evM_lTqi1P$pqWuXgF^PkX?BQ*ucj4Ymc*ATCRbJL*At@>52ezP{{RpoN&x@> delta 881 zcmZvaTSyd99L8r>ckE(PPLye=xp_myB(%+3Y~5HbFS)JZZYngZtL|}Kb!Mk55w!

xo4t{Wbo;+MQ$$?xg$ z!ASD%eR_|t&D~FfJJ<6*)zjLAi0s$iC!dN**<{m7^NY`(?kfW!$WKj4AXXj6F^iZU zFH6vudRN?hWE^i2wURU?25Jp?u#_cJ39ADlC<8kEEd`Jk34(qVCCv5qe1e%*=y0cXDM zr2uozl3lOy40*%GTQ*h&2stx{Ug186{GA2kYkS&MuRHx@`0w)55&927KH{-4I!aw* zG$<%;Np9_=8|Rj zuIjBv-+Ptl1Q9ZL6c%gOb$zg`q9C}eE(o%sh<^y82!bezpo93QAc7zw`uonQb52#y zO?O|i_*VvQRi9Jm@qNGVanAY9H#cVg_5aT96aV<(WZ?PX_PXP`VdSzT=kspV&iX7& z^H1dWy^uejukwZ1*-D};ZnK>4LyNZO2X4&5{94WrQS;OflJ%nhT*BI^ABDQRH|y2B zxoi2Vx4>spKMh#v6R%x$!psSBYJmm^-^I3RW?lc0T+o0)j`P~U!K`WS9rgBmGrU&N z)Z_;PKV*3`YdL(;Nz>SGWhrAv)*Ufs-Vt#P8YA>C0d9ZZP3j!F)?%7)eo&z7Ci(tj)kr(t0}zhb&I7S(|Gv3$86%__w*{ zhZ|0~Q+I}by?=dJ-|7$R{XrLh=j;9R!+Iwe)`z~UT6g>alO`LT4vXU`u1A4e52CG@ zC3VlOKX~qeLH+Cl58;`i*dH(&h;`4`x6i%#JdOQEdZ@voEZxAI4VnuL-qdi0XVtes z?1$-wpt}>reJ5pZ9n`m?gsCR3A2-%O5KA`h5~k57gJ|4Uua}DF8l;>;rC-5i6c?kB zHK>?3&Zhaoc0bri1`avm`2hsZ;vs&{LOQ6r$>#$n>}K#eIX~EP5)ba#^SfSvztnc( zF1bW<44uLtSCmpinJ;P=^u(Dn7|`lxLFx|zW(o0HsG%RiTUuGdEH}zp_}Y&8eaA`| zc@-##HFScEB^GJGnKR0**OD}j!fwexybno*;7`2#xo+L~Ouc^V#%J>?mLDF6CBg6l z*nfUfBjvnawJTP4xUAysB5+TA4Be!tUl@m*H}tl=?VH|Cp@!ZEs(N?Qa8OzZ<`d<% z&03+rBKiMoIK%CaK>iP>=T>RpJ&J3w z2rjjK=g)ElP4k-m%wPx<^87cDQ~-d=vy~Fwb#K7OuqrYza6LW$0rKYpke4x{ zLE+D!`7e_gQz)#W@t-C&9*aU>q7XB1Sm;M0tR#w=)kj@SX5_MVVy)87#cEiW-gEXo zi%iC~pft)4S~ybR*g)>NUi7E~(pEts7r7t7Y#5 zHmlyr-W_;N5}A_keQ1AViuSjQ*m!)k4!Nc)>FBaHiQWYX+*{}+4v148%X$y#9^yb#A5RI+w{&Vn7h9AJJD-y5d{PrPt-|HH zhhXQ;6?SGYXNi?!R!8{;T450e7?lmi7-eL&B%Fh^DOQq^1;fYJBp?5yshXCLujn3v zkB75XZxdB&{l3js?%AB?bg#&qvbEvkyONLZ;8jL+)Vr4VC>ucXTa()>o2oKgwW$Ms zSQ4AWc#_nB*f^;z=p&56q*P=0z9sqo6}|RkR=?Ceg#0c{lHXf5UtXw1aq+UpF}(jl z^8S0grj_|c$ozMc+bfw@L8{7pPVK*qD=kTAlJtT1IO)%dW2?ffC>hR=9T0n!BlOyn z)K_#5A@xg>q<(Dkwz!xgYPU~@!n-AfufuCv**pT-yk>HHC7UWMRoTqod{i>X0>4Qz z0UG0EGFJo-6aczxxPC-({g3q8lUy$79zrgUO_Iy2WF%D{4oeY9McYe$H?%%2X?+r} zX(eN7;fXk&sXEs{-L=w5<-?MP7x0=^a!){VADrA?Nv_Il zRdO@Hw;@MrYeld}9o z_Ykx^3ANSXZGWLO2KK})&i;>Tj;4vdapmfqY^zhYg{y@Urd z_TR8BUPO4Nfq*FWT~D{u#k;LX<-te94$Fj498pAsEOFsQKxr>xWK|RB2byH#!>`9^^z~$AY2h#?BHflpWyJXy~(~aaWo0 zaHk+cL^fe!6y3y~pNv%{GFBzl34>^gI2L$n2bqZYbviUTLZ(>o2Z)Iltb}{!g>E0| z<`J`xh(q1>NuEk#DSXu{TJefjl(j-TAsm5E_I?YOG0urkx+QuVV6; z1k4IwNM^o))QgSha4TuI5&cb`6Z*M|42q+-H8q=w-9BQ6@mFi-wJTcv+UG7` zCXa6YgO{d*WTVlL9)3NFyN!#_*@aFcfrrF^L?~SOm(=T@Xl$uoH93&cEv{++=oPdZ zRk4bC$b6jMQ)nktC5!!>AK!&03eoo-r)f|29uuRI;umUQDB~w~=SU)~@|So`a$Az9 zsVU^C$?0vC8g!ehQlI=ZBETMVW`T&Ny6FH8S&%v?WckLLhNi0mNe1vigy+O_wH ztQcdjhnsw%%R=OiA#pHA0hj$ONwK>}VM$Jd3-$0iii<@tivyHa(x`1yrXqdCbhDr< z-pTo~P86jfZf!~*uk7b5l#Ur@eS4es*su?N2)Q`^z^1$%bWJeiNm+v}u&A+VPim`t zNz7PuC=w`}d>I$gQH%?JHbl(+$^pLUIe{+D@}q3q2Ue+*W{GMv%V%BI%DR~D5G@+C znqpk$^ii{r#>iY-DI`bpMLjs^YKop2PtreA%1;kw} zr3a8V%a7BocI?_Nqn!n&!2tm{)UciGfK4FcyEYQMI{tR<)%YP;N@SZVe!z!Pt+-i# zU~9z#u%ZIja=03Ym%=cIMGepm6B56v8YC=pBOCc-XmtdOI&%8#a!;Wp?bIIni7!?3 zuMB z7MZQBEu>6RqKsJlTsCZ=Wzxv`oz#Oyq#iahN`NvhDv=Gx25a{`a2~K6iaYI*X{g3b zb4pD^c{jUvw&gsTT!5`R5ZO~q*AwD zsEoLvW)+=|RmR5(7N@ji-Z?r}@dbNNIOTSfk;~2bQai$)O8oB!EX;F{7WJQi4u2$n riX5O5!`I>e9?<^_kP~X(T&Z5t)xxwEk>wO&s{sF!H)$7>wbuUzpJhMh delta 2233 zcmah~ZA@EL80Ow`3%BxB%AnFxprf>uHY)?Rh=~}WB-nA|G)ojkXh)Z~S6Udfb0%8` zIJdZTI&(VX50hz@EFtqF3(@FwO8jArW{JPdGLvO~1T!^`#eXJ7-*XQ4td|h{!J+r< z^L5U7@7u2quEvxF<@|@fE6U#zX{zy%f261~3@#WV`{kC(0dPYnG{wrX(vKByl?y^3 zfrZyKvLv5WlKAC85_g7Wm|W?zBxGqGp>FbtGE#YXL!c5dljL;y1o^dmk8&QL2xZve z+4%OrMRs?P#wtIHlR-9L12IYH>q~6spL4C-Mh_V%fq8K^R=Iu9Nn~G>XY1ezc3J~+tFxro7A3$0dX)3oD%c`uC$g`J zG7Eaye4MDiMbL+7rzWvaiQBzfwTT-)oi~*^2

Z09b`iAR+STW|6_NDEYLp zf;b#O0U9ua=E(K37cBZ~Of3bAummr?0w?pOiTFGe;MDN~dV=voGh`+Y8j~llMvunR zv$R84Ye0Q*<>kW09M|9B*)OoodyUP<%&K!jb)BR=PmuoB$MMfaYFhf_{N_>*8S_@j z@3Hui|BF9rHX0;196SWc`VT>qJJ#$gQ3!Wp;(7xg+?wbLa`mmpn+=`u){TXgvWmt0=W#M8;_i?hjj z`a7soH4Vl!IIF=WjmcGEnfZCeItm3vnRz7&Y57IDi6yBi3MD`}h0MI88O_wwp6DsSG!o6QaY Dv> ../medlist.txt + # Convert all videos with the codec mpeg4 in a mp4 using the av1 video codec and the delete the originals ./curator.py convert -del -filters:mpeg4 -out:av1,mp4 -dir:"/mnt/media/Movies/" + # Convert any video with avi or mpg extensions, print formated text including ffmpeg's output and then delete the originals ./curator.py convert -del -in:avi,mpg -print:formated,verbose -dir:/mnt/media/ +More examples in :doc:`use_cases` +See Also +-------- -Synopsis - - - -Description +`FFmpeg `_ +Author +------ +Fabrice Quenneville diff --git a/docsource/source/_build/html/_sources/usage/quickstart.rst.txt b/docsource/source/_build/html/_sources/usage/quickstart.rst.txt index 178a468..68cf34e 100644 --- a/docsource/source/_build/html/_sources/usage/quickstart.rst.txt +++ b/docsource/source/_build/html/_sources/usage/quickstart.rst.txt @@ -30,6 +30,7 @@ Examples: ./curator.py list -filters:old -print:formated -dir:/mnt/media/ >> ../medlist.txt # Convert all videos with the codec mpeg4 in a mp4 using the av1 video codec and the delete the originals ./curator.py convert -del -filters:mpeg4 -out:av1,mp4 -dir:"/mnt/media/Movies/" + # Convert any video with avi or mpg extensions, print formated text including ffmpeg's output and then delete the originals ./curator.py convert -del -in:avi,mpg -print:formated,verbose -dir:/mnt/media/ More examples in :doc:`use_cases` \ No newline at end of file diff --git a/docsource/source/_build/html/searchindex.js b/docsource/source/_build/html/searchindex.js index 89ecb30..00d7a43 100644 --- a/docsource/source/_build/html/searchindex.js +++ b/docsource/source/_build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["index","usage/errors","usage/installation","usage/manual","usage/quickstart","usage/use_cases","usage/warnings"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,sphinx:56},filenames:["index.rst","usage/errors.rst","usage/installation.rst","usage/manual.rst","usage/quickstart.rst","usage/use_cases.rst","usage/warnings.rst"],objects:{},objnames:{},objtypes:{},terms:{"1080p":[3,4],"720p":[3,4],"case":[0,4],"default":[3,4],"try":1,"while":1,For:2,The:0,Use:[0,4],acquaint:6,activ:1,after:1,again:[1,6],all:[0,4,6],also:[0,1],ani:[3,4],audio:1,author:0,av1:[0,3,4],avi:[3,4],base:0,batch:0,befor:6,behavior:6,big:1,big_valu:1,bug:0,can:[0,1,6],chapter:1,clean:1,clone:2,code:0,codec:[0,4],com:2,comma:[3,4],command:[0,6],content:0,convert:[0,3,4,6],curat:[3,4,6],damag:[1,6],databas:0,decod:1,del:[3,4,6],delet:[4,6],depend:1,descript:0,detect:1,dir:[3,4,6],distribut:[1,2],don:1,done:6,doubl:[3,4],download:2,dry:6,encod:[0,6],error:[0,6],exampl:[0,1,4],expect:6,experi:1,extent:0,fabquennevil:2,fabric:3,face:1,failur:1,featur:[1,6],feel:1,few:[1,6],fferror:[3,4,6],ffmpeg:0,file:[3,4,6],filenam:[3,4],filter:[0,3,4,6],find:0,flag:6,flv:[3,4],folder:6,format:[3,4],found:[0,1],frame:1,free:1,from:0,get:6,git:2,github:[0,1],gnu:2,happen:1,have:6,header:1,here:[1,6],http:2,index:[],inform:[0,1],instal:0,irrecover:6,irrirrepar:6,issu:0,its:1,latest:1,librari:6,like:1,line:0,linux:2,list:[0,3,4,6],lowr:[3,4,6],m4v:[3,4],mai:1,manag:0,manual:0,media2:[3,4],media:[0,3,4,6],mediacur:[1,2,3,6],medlist:[3,4],miss:1,mkv:[3,4],mnt:[3,4,6],modern:0,modul:[],more:[0,4],most:1,move:1,movi:[3,4],mp4:[3,4],mpeg4:[3,4],mpeg:[1,3,4],mpg:[3,4],multipl:[3,4],name:0,necessarli:1,next:1,non:6,now:2,occur:1,old:[1,3,4],onli:2,open:1,option:[0,1,4],origin:4,other:0,out:[3,4],output:1,packag:2,page:[],pip:2,pleas:6,possibl:1,print:[1,3,4],project:1,properli:6,python:0,quennevil:3,quickstart:0,quit:1,raw:1,recod:0,recur:1,referenc:1,repair:[0,6],report:1,repositori:1,requir:2,resolut:0,run:[1,6],search:[],see:0,segfault:1,sei:1,separ:[3,4],serv:1,some:1,sourc:[0,1],step:1,subsd:6,substandard:6,suggest:1,synopsi:0,take:1,thi:2,too:1,tool:0,track:1,txt:[2,3,4],type:1,uhd:[3,4],unintend:6,until:6,updat:1,use:[3,4,6],used:[1,6],using:[1,4,6],valu:[3,4],valuabl:6,verbos:[1,3,4],veri:1,version:1,vid:[3,4],video2:3,video:[0,1,3,4,6],want:1,warn:0,when:[1,6],wich:1,without:0,wmv3:[3,4],wmv:[3,4],work:2,x264:[3,4],x265:[0,3,4],you:[1,6],your:[1,6]},titles:["Welcome to MediaCurator\u2019s documentation!","Errors","Installation","Manual","Quickstart","Use cases","Warnings"],titleterms:{"case":5,For:[],Use:5,also:3,author:3,bug:1,descript:3,distribut:[],document:0,download:[],encod:1,error:1,exampl:3,ffmpeg:[1,2],from:2,github:2,gnu:[],indic:[],instal:2,issu:1,linux:[],manual:3,mediacur:0,name:3,now:[],onli:[],option:3,other:1,packag:[],quickstart:4,repair:1,requir:[],see:3,synopsi:3,tabl:[],thi:[],warn:6,welcom:0,work:[]}}) \ No newline at end of file +Search.setIndex({docnames:["index","usage/errors","usage/installation","usage/manual","usage/quickstart","usage/use_cases","usage/warnings"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,sphinx:56},filenames:["index.rst","usage/errors.rst","usage/installation.rst","usage/manual.rst","usage/quickstart.rst","usage/use_cases.rst","usage/warnings.rst"],objects:{},objnames:{},objtypes:{},terms:{"1080p":[3,4],"720p":[3,4],"case":[0,3,4],"default":[3,4],"try":1,"while":1,For:2,The:0,Use:[0,3,4],acquaint:6,activ:1,after:1,again:[1,6],all:[0,3,4,6],also:[0,1],ani:[3,4],audio:1,author:0,av1:[0,3,4],avi:[3,4],base:[0,3],bash:[],batch:[0,3],befor:6,behavior:6,big:1,big_valu:1,block:[],bug:0,can:[0,1,6],chapter:1,clean:1,clone:2,code:0,codec:[0,3,4],com:2,comma:[3,4],command:[0,3,6],content:0,convert:[0,4,6],curat:[3,4,6],damag:[1,6],databas:[0,3],decod:1,del:[4,6],delet:[3,4,6],depend:1,descript:0,detect:1,dir:[4,6],distribut:[1,2],don:1,done:6,doubl:[3,4],download:2,dry:6,encod:[0,3,6],error:[0,3,6],exampl:[0,1,4],expect:6,experi:1,extens:[3,4],extent:[0,3],fabquennevil:2,fabric:3,face:1,failur:1,featur:[1,6],feel:1,few:[1,6],fferror:[3,4,6],ffmpeg:[0,3,4],file:[4,6],filenam:[3,4],filter:[0,4,6],find:[0,3],flag:6,flv:[3,4],folder:6,format:[3,4],found:[0,1],frame:1,free:1,from:0,get:6,git:2,github:[0,1],gnu:2,happen:1,have:6,header:1,here:[1,6],http:2,includ:[3,4],index:[],inform:[0,1,3],instal:0,irrecover:6,irrirrepar:6,issu:0,its:1,latest:1,librari:6,like:1,line:[0,3],linux:2,list:[0,4,6],lowr:[3,4,6],m4v:[3,4],mai:1,manag:[0,3],manual:0,media2:[3,4],media:[0,3,4,6],mediacur:[1,2,3,6],medlist:[3,4],miss:1,mkv:[3,4],mnt:[3,4,6],modern:[0,3],modul:[],more:[0,3,4],most:1,move:1,movi:[3,4],mp4:[3,4],mpeg4:[3,4],mpeg:[1,3,4],mpg:[3,4],multipl:[3,4],name:0,necessarli:1,next:1,non:6,now:2,occur:1,old:[1,3,4],onli:2,open:1,option:[0,1,4],origin:[3,4],other:0,out:4,output:[1,3,4],packag:2,page:[],pip:2,pleas:6,possibl:1,print:[1,4],project:1,properli:6,python:[0,3],quennevil:3,quickstart:0,quit:1,raw:1,recod:[0,3],recur:1,referenc:1,repair:[0,3,6],report:1,repositori:1,requir:2,resolut:[0,3],run:[1,6],search:[],see:0,segfault:1,sei:1,separ:[3,4],serv:1,some:1,sourc:[0,1],step:1,subsd:6,substandard:6,suggest:1,synopsi:0,take:1,text:[3,4],thi:2,too:1,tool:[0,3],track:1,txt:[2,3,4],type:1,uhd:[3,4],unintend:6,until:6,updat:1,use:[3,4,6],used:[1,6],using:[1,3,4,6],valu:[3,4],valuabl:6,verbos:[1,3,4],veri:1,version:1,vid:[3,4],video2:3,video:[0,1,3,4,6],want:1,warn:0,when:[1,6],wich:1,without:[0,3],wmv3:[3,4],wmv:[3,4],work:2,x264:[3,4],x265:[0,3,4],you:[1,6],your:[1,6]},titles:["Welcome to MediaCurator\u2019s documentation!","Errors","Installation","Manual","Quickstart","Use cases","Warnings"],titleterms:{"case":5,For:[],Use:5,also:3,author:3,bug:1,convert:3,del:3,descript:3,dir:3,distribut:[],document:0,download:[],encod:1,error:1,exampl:3,ffmpeg:[1,2],file:3,filter:3,from:2,github:2,gnu:[],indic:[],instal:2,issu:1,linux:[],list:3,manual:3,mediacur:0,name:3,now:[],onli:[],option:3,other:1,out:3,packag:[],print:3,quickstart:4,repair:1,requir:[],see:3,synopsi:3,tabl:[],thi:[],warn:6,welcom:0,work:[]}}) \ No newline at end of file diff --git a/docsource/source/_build/html/usage/manual.html b/docsource/source/_build/html/usage/manual.html index c90243a..df40373 100644 --- a/docsource/source/_build/html/usage/manual.html +++ b/docsource/source/_build/html/usage/manual.html @@ -38,9 +38,7 @@

Manual

Name

-
-

MediaCurator

-
+

MediaCurator

Synopsis

@@ -52,39 +50,6 @@ [-dir/-files:"/mnt/media/",,"/mnt/media2/"]
- -
-

Description

-
-
-

Options

-

list

-

convert

-

-del:

-
-
-in:

[any,avi,mkv,wmv,mpg,mp4,m4v,flv,vid]

-
-
-filters:

[fferror,old,lowres,hd,720p,1080p,uhd,mpeg,mpeg4,x264,wmv3,wmv]

-
-
-out:

[mkv/mp4,x265/av1]

-
-
-print:

[list,formated,verbose]

-
-
-dir:

[“/mnt/media/”,,”/mnt/media2/”]

-
-
-files:

[“/mnt/media/video.avi”,,”/mnt/media2/video2.mp4”]

-
-
-
-
-

Examples

-
-
-

See Also

-
-
-

Author

-

Fabrice Quenneville

for multiple files or filenames use double comma separated values “,,”

default options are:

-in:any
@@ -93,14 +58,86 @@
 -print:list
 
-

Examples:

-
./curator.py list -filters:old -print:formated -dir:/mnt/media/ >> ../medlist.txt
+
+
+

Description

+

MediaCurator is a Python command line tool to manage a media database.

+
    +
  • List all the video’s and their information with or without filters

  • +
  • Batch find and repair/convert videos with encoding errors

  • +
  • Batch recode videos to more modern codecs (x265 / AV1) based on filters: extentions, codecs, resolutions …

  • +
+
+
+

Options

+
+

list

+
+

Print information

+
+
+
+

convert

+
+
+

-del:

+
+
+

-in:

+
+

[any,avi,mkv,wmv,mpg,mp4,m4v,flv,vid]

+
+
+
+

-filters:

+
+

[fferror,old,lowres,hd,720p,1080p,uhd,mpeg,mpeg4,x264,wmv3,wmv]

+
+
+
+

-out:

+
+

[mkv/mp4,x265/av1]

+
+
+
+

-print:

+
+

[list,formated,verbose]

+
+
+
+

-dir:

+
+

[“/mnt/media/”,,”/mnt/media2/”]

+
+
+
+

-files:

+
+

[“/mnt/media/video.avi”,,”/mnt/media2/video2.mp4”]

+
+
+
+
+

Examples

+
# List all videos with old codec in formated format
+./curator.py list -filters:old -print:formated -dir:/mnt/media/ >> ../medlist.txt
+# Convert all videos with the codec mpeg4 in a mp4 using the av1 video codec and the delete the originals
 ./curator.py convert -del -filters:mpeg4 -out:av1,mp4 -dir:"/mnt/media/Movies/"
+# Convert any video with avi or mpg extensions, print formated text including ffmpeg's output and then delete the originals
 ./curator.py convert -del -in:avi,mpg -print:formated,verbose -dir:/mnt/media/
 
-

Synopsis

-

Description

+

More examples in Use cases

+
+
+

See Also

+

FFmpeg

+
+
+

Author

+

Fabrice Quenneville

diff --git a/docsource/source/_build/html/usage/quickstart.html b/docsource/source/_build/html/usage/quickstart.html index 198e8ea..bdaeccc 100644 --- a/docsource/source/_build/html/usage/quickstart.html +++ b/docsource/source/_build/html/usage/quickstart.html @@ -57,6 +57,7 @@ ./curator.py list -filters:old -print:formated -dir:/mnt/media/ >> ../medlist.txt # Convert all videos with the codec mpeg4 in a mp4 using the av1 video codec and the delete the originals ./curator.py convert -del -filters:mpeg4 -out:av1,mp4 -dir:"/mnt/media/Movies/" +# Convert any video with avi or mpg extensions, print formated text including ffmpeg's output and then delete the originals ./curator.py convert -del -in:avi,mpg -print:formated,verbose -dir:/mnt/media/
diff --git a/docsource/source/usage/manual.rst b/docsource/source/usage/manual.rst index 796951f..45b1c1b 100644 --- a/docsource/source/usage/manual.rst +++ b/docsource/source/usage/manual.rst @@ -5,7 +5,7 @@ Manual Name ---- - MediaCurator +MediaCurator Synopsis -------- @@ -19,47 +19,6 @@ Synopsis [-print:list,formated,verbose] [-dir/-files:"/mnt/media/",,"/mnt/media2/"] -Description ------------ - -Options -------- - -list - -convert - --del: - --in: - [any,avi,mkv,wmv,mpg,mp4,m4v,flv,vid] --filters: - [fferror,old,lowres,hd,720p,1080p,uhd,mpeg,mpeg4,x264,wmv3,wmv] --out: - [mkv/mp4,x265/av1] --print: - [list,formated,verbose] --dir: - ["/mnt/media/",,"/mnt/media2/"] --files: - ["/mnt/media/video.avi",,"/mnt/media2/video2.mp4"] - -Examples --------- - - -See Also --------- - -Author ------- - -Fabrice Quenneville - - - - - **for multiple files or filenames use double comma separated values ",,"** @@ -72,20 +31,72 @@ default options are: -out:mkv,x265 -print:list -Examples: +Description +----------- + +MediaCurator is a Python command line tool to manage a media database. + +* List all the video's and their information with or without filters +* Batch find and repair/convert videos with encoding errors +* Batch recode videos to more modern codecs (x265 / AV1) based on filters: extentions, codecs, resolutions ... + +Options +------- + +list +==== + Print information + +convert +======= + +-del: +===== + +-in: +==== + [any,avi,mkv,wmv,mpg,mp4,m4v,flv,vid] + +-filters: +========= + [fferror,old,lowres,hd,720p,1080p,uhd,mpeg,mpeg4,x264,wmv3,wmv] + +-out: +===== + [mkv/mp4,x265/av1] + +-print: +======= + [list,formated,verbose] + +-dir: +===== + ["/mnt/media/",,"/mnt/media2/"] + +-files: +======= + ["/mnt/media/video.avi",,"/mnt/media2/video2.mp4"] + +Examples +-------- .. code-block:: bash + # List all videos with old codec in formated format ./curator.py list -filters:old -print:formated -dir:/mnt/media/ >> ../medlist.txt + # Convert all videos with the codec mpeg4 in a mp4 using the av1 video codec and the delete the originals ./curator.py convert -del -filters:mpeg4 -out:av1,mp4 -dir:"/mnt/media/Movies/" + # Convert any video with avi or mpg extensions, print formated text including ffmpeg's output and then delete the originals ./curator.py convert -del -in:avi,mpg -print:formated,verbose -dir:/mnt/media/ +More examples in :doc:`use_cases` +See Also +-------- -Synopsis - - - -Description +`FFmpeg `_ +Author +------ +Fabrice Quenneville diff --git a/docsource/source/usage/quickstart.rst b/docsource/source/usage/quickstart.rst index 178a468..68cf34e 100644 --- a/docsource/source/usage/quickstart.rst +++ b/docsource/source/usage/quickstart.rst @@ -30,6 +30,7 @@ Examples: ./curator.py list -filters:old -print:formated -dir:/mnt/media/ >> ../medlist.txt # Convert all videos with the codec mpeg4 in a mp4 using the av1 video codec and the delete the originals ./curator.py convert -del -filters:mpeg4 -out:av1,mp4 -dir:"/mnt/media/Movies/" + # Convert any video with avi or mpg extensions, print formated text including ffmpeg's output and then delete the originals ./curator.py convert -del -in:avi,mpg -print:formated,verbose -dir:/mnt/media/ More examples in :doc:`use_cases` \ No newline at end of file