diff ffmpeg.xml @ 11:fec4348c08f5 draft

Uploaded
author greg
date Wed, 18 Oct 2017 09:42:34 -0400
parents 18a4e1df1a54
children c5474fdac82e
line wrap: on
line diff
--- a/ffmpeg.xml	Wed Oct 18 08:53:07 2017 -0400
+++ b/ffmpeg.xml	Wed Oct 18 09:42:34 2017 -0400
@@ -4,13 +4,26 @@
         <requirement type="package" version="3.2.4">ffmpeg</requirement>
     </requirements>
     <command detect_errors="exit_code"><![CDATA[
+mkdir output &&
 #if str($conversion_cond.conversion) == "video":
-    mkdir output &&
     #if str($output_process_log) == 'yes':
         ffmpeg -i '$conversion_cond.input' -filter:v fps=fps=1/$conversion_cond.sbf 2>$output_log output/%05d.jpg
     #else:
         ffmpeg -i '$conversion_cond.input' -filter:v fps=fps=1/$conversion_cond.sbf 2>/dev/null output/%05d.jpg
     #end if
+#else:
+    ## str($conversion_cond.conversion) == "images"
+    mkdir input_dir &&
+    #for $i in $conversion_cond.input:
+        #set input_filename = $i.file_name
+        #set full_name = $i.name
+        ln -s $input_filename input_dir/$full_name
+    #end for
+    #if str($output_process_log) == 'yes':
+        ffmpeg -r $conversion_cond.frame_rate -f mp4 -s 1920x1080 -i $input_dir/%04d.jpg -vcodec libx264 -crf $conversion_cond.quality  -pix_fmt yuv420p 2>$output_log $output_video
+    #else:
+        ffmpeg -r $conversion_cond.frame_rate -f mp4 -s 1920x1080 -i $input_dir/%04d.jpg -vcodec libx264 -crf $conversion_cond.quality  -pix_fmt yuv420p 2>/dev/null $output_video
+    #end if
 #end if
     ]]></command>
     <inputs>
@@ -23,6 +36,11 @@
                 <param name="input" type="data" format="avi,mpg,mp4" label="Select input video"/>
                 <param name="sbf" type="integer" value="1" label="Number of seconds between frames"/>
             </when>
+            <when value="images">
+                <param name="input" type="data_collection" collection_type="list" format="jpg" label="Select input images"/>
+                <param name="frame_rate" type="integer" value="60" label="Number of frames per second"/>
+                <param name="quality" type="integer" value="15" label="Image quality" help="Lower means better quality, 15-25 is usually good"/>
+            </when>
         </conditional>
         <param name="output_process_log" type="select" display="radio" label="Output process log?">
             <option value="no" selected="true">No</option>
@@ -30,12 +48,15 @@
         </param>
     </inputs>
     <outputs>
+        <data name="output_log" format="txt" label="${tool.name} (process log) on ${on_string}">
+            <filter>output_process_log == 'yes'</filter>
+        </data>
         <collection name="output_from_video" type="list" label="${tool.name} (images) on ${on_string}">
             <discover_datasets pattern="__name__" directory="output" format="jpg"/>
             <filter>conversion_cond['conversion'] == 'video'</filter>
         </collection>
-        <data name="output_log" format="txt" label="${tool.name} (process log) on ${on_string}">
-            <filter>output_process_log == 'yes'</filter>
+        <data name="output_video" format="mp4" label="${tool.name} (video) on ${on_string}">
+            <filter>conversion_cond['conversion'] == 'images'</filter>
         </data>
     </outputs>
     <tests>