Sometimes it is necessary to speed up videos and/or reduce the resolution. This will typically result in a much small file size. ffmpeg and avconv allow video file manipulation on the command line.
These commands work on Debian 10, and will likely work on Ubuntu and other Linux distributions.
Speed up video, 2× speed:
ffmpeg -i input.mp4 -filter:v "setpts=0.5*PTS" output.mp4
Reduce resolution down to 1280×720:
avconv -i input.mp4 -s 1280x720 output-small.mp4
Note that the metadata of the video, such as the resolution, can be read with the utility:
Using the following steps an Android phone can be mounted over USB by a Debian Linux system.
- apt-get install jmtpfs
- connect phone and select data transfer over USB
- jmtpfs /mnt/phone
At this point, my phone prompts me whether or not to allow this connection. I select allow, but it is too late for the computer and any attempts to browse the directory /mnt/phone result in i/o errors. Unmounting and remounting without changing anything on the phone and leaving it connected, is a work-around for this issue.
- umount /mnt/phone
- jmtpfs /mnt/phone
Newer versions of vi/vim included with Debian Stretch and later have the mouse mode enabled, which prevents traditional copy and paste from being used – the ability to highlight text and then middle-click to paste.
To re-enable this behaviour so that the middle-click can be used, enter the following line into your ~/.vimrc file:
Using Iperf version 2.0.9 on Debian (Stretch) it’s possible to test networks using a multicast connection.
On the receiving end execute the command:
iperf -s -u -B 188.8.131.52 -i 1
On the sending end execute the command:
iperf -c 184.108.40.206 -u -T 3 -t 10 -i 1 -b 100M
This will run a bandwidth test using UDP traffic at 100Mbps.
Note, if your system is multi-homed you must make sure your multicast traffic is routed out of the correct interface. For example:
ip route add 220.127.116.11/4 dev eth0
By default in Bash, the Internal Field Separator (IFS) is a ‘ ‘ character.
This is used to determine how bash splits text input into different fields. For example:
for file in *.jpg; do echo $file; done
will output each jpg filename on a separate line, unless there are spaces used in the filename.
For a more complete solution, change the IFS to the new line character and list each filename on a new line:
for file in `ls -1 *.jpg;` do echo "$file"; done
Of course the above doesn’t really achieve much, but it might be used as part of a simple script to resize images:
for file in `ls -1 *.jpg`; do convert "$file" -resize 200 "thumb-$file"; done