user6081: Here is what I have so far . I just dont know how to add plughw:1,0 into the command . 
I have tested that recording does work on plughw:1,0 .
function stream {

ffmpeg -r 10  -threads 2 \
 -f x11grab -video_size 1600x900 -framerate 10 -i :0.0 \
tasta-f v4l2 -video_size 320x240 -framerate 10 -i /dev/video0 \
 -f alsa -ac 2 -i pulse                          \
 -filter_complex " \
[1:v]scale=170:-1,setpts=PTS-STARTPTS[fg]; \
[0:v]scale=1000:-1,setpts=PTS-STARTPTS[bg];  \
[bg][fg]overlay=W-w-10:10,format=yuv420p[out]; \
[out]crop=in_w:in_h-20:0:20[out]"\
 -map "[out]" \
 -map "2:a"  \
 -vcodec libx264 -preset veryfast -pix_fmt yuv420p -g 2 \
 -b:v 1500k -minrate 1500k -maxrate 1500k -bufsize 3200k \
 -acodec libmp3lame -ar 44100 -b:a 256 \
 -ac 2 -f flv out.flv


  #-f alsa -i plughw:1,0

  #'rtmp://live-jfk.twitch.tv/app/'"$key"

}


user6081: The trick was to use amix=inputs=2
My error was thinking that I wanted to add another output stream to the track and the solution was to mix down the two tracks into one 
function stream {

ffmpeg -r 10  -threads 2 \
 -f x11grab -video_size 1600x900 -framerate 10 -i :0.0 \
 -f v4l2 -video_size 320x240 -framerate 10 -i /dev/video0 \
 -f alsa -ac 2 -i pulse                          \
 -f alsa -i plughw:1,0 \
 -filter_complex " \
amix=inputs=2;
[1:v]scale=170:-1,setpts=PTS-STARTPTS[fg]; \
[0:v]scale=1000:-1,setpts=PTS-STARTPTS[bg];  \
[bg][fg]overlay=W-w-10:10,format=yuv420p[out]; \
[out]crop=in_w:in_h-20:0:20[out]"\
 -map "[out]" \
 -map "2:a"  \
 -vcodec libx264 -preset veryfast -pix_fmt yuv420p -g 2 \
 -b:v 1500k -minrate 1500k -maxrate 1500k -bufsize 3200k \
 -acodec libmp3lame -ar 44100 -b:a 256 \
 -ac 2 -f flv out.flv


  #-f alsa -i plughw:1,0
  #'rtmp://live-jfk.twitch.tv/app/'"$key"

}


6081: <p>Here is what I have so far . I just dont know how to add plughw:1,0 into the command . </p>

<p>I have tested that recording does work on plughw:1,0 .</p>

<pre><code>function stream {

ffmpeg -r 10  -threads 2 \
 -f x11grab -video_size 1600x900 -framerate 10 -i :0.0 \
tasta-f v4l2 -video_size 320x240 -framerate 10 -i /dev/video0 \
 -f alsa -ac 2 -i pulse                          \
 -filter_complex " \
[1:v]scale=170:-1,setpts=PTS-STARTPTS[fg]; \
[0:v]scale=1000:-1,setpts=PTS-STARTPTS[bg];  \
[bg][fg]overlay=W-w-10:10,format=yuv420p[out]; \
[out]crop=in_w:in_h-20:0:20[out]"\
 -map "[out]" \
 -map "2:a"  \
 -vcodec libx264 -preset veryfast -pix_fmt yuv420p -g 2 \
 -b:v 1500k -minrate 1500k -maxrate 1500k -bufsize 3200k \
 -acodec libmp3lame -ar 44100 -b:a 256 \
 -ac 2 -f flv out.flv


  #-f alsa -i plughw:1,0

  #'rtmp://live-jfk.twitch.tv/app/'"$key"

}
</code></pre>
 6081: <p>The trick was to use amix=inputs=2</p>

<p>My error was thinking that I wanted to add another output stream to the track and the solution was to mix down the two tracks into one </p>

<pre><code>function stream {

ffmpeg -r 10  -threads 2 \
 -f x11grab -video_size 1600x900 -framerate 10 -i :0.0 \
 -f v4l2 -video_size 320x240 -framerate 10 -i /dev/video0 \
 -f alsa -ac 2 -i pulse                          \
 -f alsa -i plughw:1,0 \
 -filter_complex " \
amix=inputs=2;
[1:v]scale=170:-1,setpts=PTS-STARTPTS[fg]; \
[0:v]scale=1000:-1,setpts=PTS-STARTPTS[bg];  \
[bg][fg]overlay=W-w-10:10,format=yuv420p[out]; \
[out]crop=in_w:in_h-20:0:20[out]"\
 -map "[out]" \
 -map "2:a"  \
 -vcodec libx264 -preset veryfast -pix_fmt yuv420p -g 2 \
 -b:v 1500k -minrate 1500k -maxrate 1500k -bufsize 3200k \
 -acodec libmp3lame -ar 44100 -b:a 256 \
 -ac 2 -f flv out.flv


  #-f alsa -i plughw:1,0
  #'rtmp://live-jfk.twitch.tv/app/'"$key"

}
</code></pre>
