diff ffmpeg_converter.xml @ 0:dda39fc5dc6d draft default tip

planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/ffmpeg commit 528a2a0d7dc5d1a872e00dddee8395e463477568
author bgruening
date Wed, 17 Dec 2025 18:11:42 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ffmpeg_converter.xml	Wed Dec 17 18:11:42 2025 +0000
@@ -0,0 +1,121 @@
+<tool id="ffmpeg_converter" name="FFmpeg Format Converter" version="0.1.3" profile="24.2">
+    <description>Convert between video and audio formats</description>
+    <requirements>
+        <requirement type="package" version="7.1.1">ffmpeg</requirement>
+    </requirements>
+    <command detect_errors="exit_code">
+        <![CDATA[
+        ffmpeg -i '$input_file' output.${output_format} &&
+        mv output.${output_format} '$output_file'
+        ]]>
+    </command>
+    <inputs>
+        <param name="input_file" type="data" format="mp4,mov,avi,mkv,webm,mp3,wav,flac,ogg,m4a" label="Input media file"/>
+        <param name="output_format" type="select" label="Output format">
+            <option value="mp4">MP4 (video)</option>
+            <option value="mkv">MKV (video)</option>
+            <option value="avi">AVI (video)</option>
+            <option value="mov">MOV (video)</option>
+            <option value="webm">WebM (video)</option>
+            <option value="mp3">MP3 (audio)</option>
+            <option value="wav">WAV (audio)</option>
+            <option value="flac">FLAC (audio)</option>
+            <option value="ogg">OGG (audio)</option>
+            <option value="m4a">M4A (audio)</option>
+        </param>
+    </inputs>
+    <outputs>
+        <data name="output_file" format="ogg" label="Converted file (${output_format})">
+            <change_format>
+                <when input="output_format" value="mp4" format="mp4"/>
+                <when input="output_format" value="mkv" format="mkv"/>
+                <when input="output_format" value="avi" format="avi"/>
+                <when input="output_format" value="mov" format="mov"/>
+                <when input="output_format" value="webm" format="webm"/>
+                <when input="output_format" value="mp3" format="mp3"/>
+                <when input="output_format" value="wav" format="wav"/>
+                <when input="output_format" value="flac" format="flac"/>
+                <when input="output_format" value="m4a" format="m4a"/>
+            </change_format>
+        </data>
+    </outputs>
+    <tests>
+        <test expect_num_outputs="1">
+            <param name="input_file" value="SampleVideo_360x240_cut.mp4" ftype="mp4"/>
+            <param name="output_format" value="webm"/>
+            <output name="output_file" ftype="webm">
+                <assert_contents>
+                    <has_size value="107485" delta="8000"/>
+               </assert_contents>
+            </output>
+        </test>
+        <test expect_num_outputs="1">
+            <param name="input_file" value="SampleVideo_360x240_cut.mp4" ftype="mp4"/>
+            <param name="output_format" value="flac"/>
+            <output name="output_file" ftype="flac">
+                <assert_contents>
+                    <has_size value="630917" delta="8000"/>
+                </assert_contents>
+            </output>
+        </test>
+        <test expect_num_outputs="1">
+            <param name="input_file" value="SampleVideo_360x240_cut.mp4" ftype="mp4"/>
+            <param name="output_format" value="mp3"/>
+            <output name="output_file" ftype="mp3">
+                <assert_contents>
+                    <has_size value="32979" delta="8000" />
+                </assert_contents>
+            </output>
+        </test>
+        <test expect_num_outputs="1">
+            <param name="input_file" value="SampleVideo_360x240_cut.flac" ftype="flac"/>
+            <param name="output_format" value="ogg"/>
+            <output name="output_file" ftype="ogg">
+                <assert_contents>
+                    <has_size value="67376" delta="8000" />
+                </assert_contents>
+            </output>
+        </test>
+        <test expect_num_outputs="1">
+            <param name="input_file" value="SampleVideo_360x240_cut.mp4" ftype="mp4"/>
+            <param name="output_format" value="mkv"/>
+            <output name="output_file" ftype="mkv">
+                <assert_contents>
+                    <has_size value="107489" delta="8000"/>
+                </assert_contents>
+            </output>
+        </test>
+        <test expect_num_outputs="1">
+            <param name="input_file" value="SampleVideo_360x240_cut.mp3" ftype="mp3"/>
+            <param name="output_format" value="m4a"/>
+            <output name="output_file" ftype="m4a">
+                <assert_contents>
+                    <has_size value="33170" delta="8000" />
+                </assert_contents>
+            </output>
+        </test>
+    </tests>
+    <help>
+        This tool uses FFmpeg to convert between common video and audio file formats.
+
+        Input formats:
+        - Video: MP4, MOV, AVI, MKV, WebM
+        - Audio: MP3, WAV, FLAC, AAC, OGG, M4A
+
+        Select the output format you want, and FFmpeg will handle the conversion.
+    </help>
+    <citations>
+        <citation type="bibtex">
+            @article{tomar2006converting,
+                title={Converting video formats with FFmpeg},
+                author={Tomar, Suramya},
+                journal={Linux Journal},
+                volume={2006},
+                number={146},
+                pages={10},
+                year={2006},
+                publisher={Belltown Media}
+              } 
+        </citation>
+    </citations>
+</tool>
\ No newline at end of file