# ffmpeg notes

## Concatenazione di file mp4

	$ nano cam1_list.txt
	
<br/>

	file file1.mp4
	file file2.mp4
	file file3-mp4

<br/>

	$ ffmpeg -f concat -safe 0 -i cam1_list.txt -c copy cam1.mp4

* <https://stackoverflow.com/questions/7333232/how-to-concatenate-two-mp4-files-using-ffmpeg>

## Scalare un video

	ffmpeg -i cam1.mp4 -vf scale=1280:-1 cam1_720p.mp4


## Conversione da audio stereo a audio mono

	ffmpeg -i audio_stereo.m4a -ac 1 audio_stereo.mp3

## Registrazione da stream mjpg

	ffmpeg -i http://cam4.local:8001/stream.mjpg -an -vcodec h264 file.mp4
	
## Watermark

	ffmpeg -i http://cam4.local:8001/stream.mjpg -i watermark.png -filter_complex "overlay=10:10" -an -vcodec h264 file1.mp4	
	
## Data e ora 

	ffmpeg -i http://cam4.local:8001/stream.mjpg -vf "drawtext=fontfile=/usr/share/fonts/TTF/Vera.ttf: text='%{localtime}': x=(w-tw)/2: y=h-(2*lh): fontcolor=white: box=1: boxcolor=0x00000000@1: fontsize=20" -an -vcodec h264 file1.mp4

* [watermark.png](./watermark.png)


##Conversione serie di jpg in gif

	ffmpeg -f image2 -framerate 6 -i img%3d.jpg -vf scale=800x600 out.gif

* [Esempio](http://www.tanzilli.com/meti_tropea_1.gif)
* [Altri esempi](http://stackoverflow.com/questions/3688870/create-animated-gif-from-a-set-of-jpeg-images)



## Scalare una immagine

	ffmpeg -i photo1.jpg -vf scale=w=128:h=-1 photos_128/photo1.jpg 

* [Image scaling](https://www.bogotobogo.com/FFMpeg/ffmpeg_image_scaling_jpeg.php)


Convertire un gruppo di immagini:

	for f in *.jpg; do
	  ffmpeg -i $f -vf scale=w=1920:h=-1 scalate/$f 
	done
 
## Applicare un Watermark ad una serie di foto 

	for f in *.jpg; do 
		ffmpeg -i "$f" -i watermark.png -filter_complex "overlay=10:10" "${f/%.jpg/-v.jpg}"; 
	done

## Convertire una intera directory di video da un formato all'altro

	for i in *.wmv; do ffmpeg -i "$i" "${i%.*}.mp4"; done

##Installation steps

<pre class="terminal">
# sh -c 'echo "deb http://www.deb-multimedia.org jessie main" >> /etc/apt/sources.list'
# apt-get update
# apt-get install deb-multimedia-keyring
# apt-get install ffmpeg
# apt-get install v4l-utils
</pre>

##Configure ffserver

Save this content in __/etc/ffserver.conf__:

@source='ffserver.conf'

Then run:

<pre class="terminal">
$ ffserver
</pre>

###ffmpeg

<pre class="terminal">
$ ffmpeg -f v4l2 -i /dev/video0 http://localhost:8080/feed.ffm
</pre>

##Remote access from aweb browser

<pre class="minicom">
http://ip_address:8080/status.html
</pre>

or

<pre class="minicom">
http://ip_address:8080/feed.webm
</pre>

or

@source='video.html'

##Links

* [ffmpeg home page](https://ffmpeg.org/)
* [ffmpeg streaming guide](https://trac.ffmpeg.org/wiki/StreamingGuide)
* [ffmpeg Capture/Webcam](https://trac.ffmpeg.org/wiki/Capture/Webcam)
* [ffserver doc](https://www.ffmpeg.org/ffserver.html)
* [A Webcam Server with Linux](https://www.moreno.marzolla.name/software/linux-webcam-server/)


	