view 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 source

<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>