OS:ubuntu 12.04
ffmpeg:N-47141-g4063bb2
x264:0.133.2334 a3ac64b
目标:
使用ffserver建立流媒體伺服器
使用ffmpeg對本地檔案流化(x264編碼器)
使用ffplay播放
<a href="http://lnmcc.net/2013/06/28/%E5%9F%BA%E4%BA%8Effmpeg%E7%9A%84%E6%B5%81%E5%AA%92%E4%BD%93%E6%9C%8D%E5%8A%A1%E5%99%A8/#ffserverconf">1 ffserver.conf配置</a>
<a href="http://lnmcc.net/2013/06/28/%E5%9F%BA%E4%BA%8Effmpeg%E7%9A%84%E6%B5%81%E5%AA%92%E4%BD%93%E6%9C%8D%E5%8A%A1%E5%99%A8/#ffserver">2 啟動ffserver伺服器</a>
<a href="http://lnmcc.net/2013/06/28/%E5%9F%BA%E4%BA%8Effmpeg%E7%9A%84%E6%B5%81%E5%AA%92%E4%BD%93%E6%9C%8D%E5%8A%A1%E5%99%A8/#ffmpeg">3 使用ffmpeg對本地檔案流化</a>
<a href="http://lnmcc.net/2013/06/28/%E5%9F%BA%E4%BA%8Effmpeg%E7%9A%84%E6%B5%81%E5%AA%92%E4%BD%93%E6%9C%8D%E5%8A%A1%E5%99%A8/#i">4 捕捉本地攝像頭資料</a>
<a href="http://lnmcc.net/2013/06/28/%E5%9F%BA%E4%BA%8Effmpeg%E7%9A%84%E6%B5%81%E5%AA%92%E4%BD%93%E6%9C%8D%E5%8A%A1%E5%99%A8/#i-2">5 為流媒體增加聲音</a>
<a href="http://lnmcc.net/2013/06/28/%E5%9F%BA%E4%BA%8Effmpeg%E7%9A%84%E6%B5%81%E5%AA%92%E4%BD%93%E6%9C%8D%E5%8A%A1%E5%99%A8/#ffplay">6 使用ffplay播放</a>
<code>1</code>
<code>Port 8090 </code><code>#通路端口</code>
<code>2</code>
<code>RTSPPort 554</code><code>#rtsp端口</code>
<code>3</code>
<code>BindAddress 0.0.0.0</code><code>#伺服器位址綁定</code>
<code>4</code>
<code>MaxHTTPConnections 2000</code><code>#允許的最大連接配接數</code>
<code>5</code>
<code>MaxClients 1000</code><code>#最大的客戶數</code>
<code>6</code>
<code>MaxBandwidth 10000</code>
<code>7</code>
<code>CustomLog -</code>
<code>8</code>
<code>9</code>
<code><Feed feed1.ffm></code>
<code>10</code>
<code>File /tmp/feed1.ffm</code>
<code>11</code>
<code>FileMaxSize 1G</code>
<code>12</code>
<code>ACL allow 127.0.0.1</code><code>#隻允許本地連接配接</code>
<code>13</code>
<code></Feed></code>
<code>14</code>
<code>15</code>
<code>################ asf ################</code>
<code>16</code>
<code>17</code>
<code><Stream</code><code>test</code><code>.asf></code>
<code>18</code>
<code>Feed feed1.ffm</code>
<code>19</code>
<code>Format asf</code><code>#流媒體格式</code>
<code>20</code>
<code>VideoCodec libx264</code><code>#編碼格式</code>
<code>21</code>
<code>VideoFrameRate 25</code><code>#桢率</code>
<code>22</code>
<code>VideoSize 1024x768</code><code>#播放大小</code>
<code>23</code>
<code>VideoBitRate 2M</code><code>#碼率</code>
<code>24</code>
<code>VideoBufferSize 10000000</code>
<code>25</code>
<code>VideoGopSize 24</code>
<code>26</code>
<code>StartSendOnKey</code>
<code>27</code>
<code>Preroll 5</code>
<code>28</code>
<code>#使用x264編碼時必須有下面的4個參數</code>
<code>29</code>
<code>VideoQMin 3</code>
<code>30</code>
<code>VideoQMax 31</code>
<code>31</code>
<code>AVOptionVideo flags +global_header</code>
<code>32</code>
<code>AVOptionAudio flags +global_header</code>
<code>33</code>
<code>NOAudio</code>
<code>34</code>
<code></Stream></code>
<code>35</code>
<code>36</code>
<code>################ flv ################</code>
<code>37</code>
<code>38</code>
<code><Stream</code><code>test</code><code>.flv></code>
<code>39</code>
<code>40</code>
<code>41</code>
<code>Format flv</code>
<code>42</code>
<code>43</code>
<code>NoAudio</code>
<code>44</code>
<code>#AudioBitRate 32 </code>
<code>45</code>
<code>#AudioChannels 2</code>
<code>46</code>
<code>#AudioSampleRate 44100</code>
<code>47</code>
<code>#AVOptionAudio flags +global_header</code>
<code>48</code>
<code>#AudioCodec libmp3lame</code>
<code>49</code>
<code>50</code>
<code>#NoVideo</code>
<code>51</code>
<code>VideoBitRate 1024</code>
<code>52</code>
<code>VideoFrameRate 40 </code>
<code>53</code>
<code>VideoSize 1280x720</code>
<code>54</code>
<code>VideoBufferSize 1000000</code>
<code>55</code>
<code>VideoCodec libx264</code>
<code>56</code>
<code>57</code>
<code>58</code>
<code>VideoQMax 31 </code>
<code>59</code>
<code>60</code>
<code>VideoBitRateTolerance 100</code>
<code>61</code>
<code>VideoGopSize 12 </code>
<code>62</code>
<code>63</code>
<code>64</code>
<code>AVOptionVideo qmin 3</code>
<code>65</code>
<code>AVOptionVideo qmax 31</code>
<code>66</code>
<code>#AVOptionVideo quality good</code>
<code>67</code>
<code>#AVOptionVideo cpu-used 0</code>
<code>68</code>
<code>69</code>
<code>#AVOptionVideo keyint_min 25</code>
<code>70</code>
<code>#AVOptionVideo qcomp 0.6</code>
<code>71</code>
<code>AVOptionVideo qdiff 4</code>
<code>72</code>
<code>#AVOptionVideo me_range 16</code>
<code>73</code>
<code>#Preroll 15</code>
<code>74</code>
<code>75</code>
<code>76</code>
<code>################ rtsp ################</code>
<code>77</code>
<code>78</code>
<code><Stream live.h264></code>
<code>79</code>
<code>Format rtp</code>
<code>80</code>
<code>81</code>
<code>82</code>
<code>#VideoFrameRate 7</code>
<code>83</code>
<code>VideoBitRate 300</code>
<code>84</code>
<code>#VideoSize 480x272</code>
<code>85</code>
<code>VideoSize 352x288</code>
<code>86</code>
<code>#AVPresetVideo default</code>
<code>87</code>
<code>AVPresetVideo superfast</code>
<code>88</code>
<code>89</code>
<code>90</code>
<code>PixelFormat yuv420p</code>
<code>91</code>
<code>AVOptionVideo me_range 4</code>
<code>92</code>
<code>93</code>
<code>AVOptionVideo qmin 2</code>
<code>94</code>
<code>AVOptionVideo qmax 51</code>
<code>95</code>
<code>96</code>
<code>#MulticastAddress 224.124.0.1</code>
<code>97</code>
<code>#MulticastPort 5000</code>
<code>98</code>
<code>#MulticastTTL 1</code>
<code>99</code>
<code>100</code>
<code>101</code>
<code>#AudioCodec libfaac</code>
<code>102</code>
<code>#AudioBitRate 32</code>
<code>103</code>
<code>104</code>
<code>#AudioSampleRate 22050</code>
<code>105</code>
<code>106</code>
<code>107</code>
<code>108</code>
<code>################ html ################</code>
<code>109</code>
<code>110</code>
<code><Stream stat.html></code>
<code>111</code>
<code>Format status</code>
<code>112</code>
<code># Only allow local people to get the status</code>
<code>113</code>
<code>ACL allow localhost</code>
<code>114</code>
<code>ACL allow 192.168.0.0 192.168.255.255</code>
<code>115</code>
<code>#FaviconURL http://pond1.gladstonefamily.net:8080/favicon.ico</code>
<code>116</code>
<code>117</code>
<code>118</code>
<code># Redirect index.html to the appropriate site</code>
<code>119</code>
<code><Redirect index.html></code>
<code>120</code>
<code>URL http://www.ffmpeg.org/</code>
<code>121</code>
<code></Redirect></code>
<code>ffserver -d -f ./ffserver.conf</code>
<code>./ffmpeg -i ./1.mov -vcodec libx264 -qmin 3 -qmax 31 -qdiff 4 -me_range 16 -keyint_min 25 -qcomp 0.6 -b 9000K http://localhost:8090/feed1.ffm</code>
<code>./ffmpeg -f video4linux2 -i /dev/video0 http://localhost:8090/feed1.ffm</code>
在ffmserver.conf中打開聲音:
<code>#NoAudio</code>
<code>AudioBitRate 128kb</code>
<code>AudioChannels 2</code>
<code>AudioSampleRate 44100</code>
在輸入中加入聲音捕獲:
<code>ffmpeg -f v4l2 -i /dev/video0 -f alsa -i hw:0,0 http://localhost:8090/feed_tv.ffm</code>
<code>./ffplay mmsh://localhost:8090/</code><code>test</code><code>.asf</code>
<code>./ffplay http://localhost:8090/</code><code>test</code><code>.flv</code>
<code>./ffplay rtsp://localhost:554/live.h264</code>