要使用 FFMPEG 对视频进行编码,请使用以下命令:
\n\n/usr/bin/ffmpeg -i INPUT.MP4 \n-preset veryfast -r 25 -g 75 -threads 4 -sc_threshold 0 \n-map 0:v:0 -map 0:a:0 \n-filter:v:0 scale=h=240:w=-2 \n-minrate:v:0 75k \n-maxrate:v:0 218k \n-bufsize:v:0 300k \n-b:v:0 150k -c:a aac -b:a 128k -ac 2 \n-var_stream_map "v:0,a:0" \n-master_pl_name master.m3u8 \n-f hls -hls_time 3 -segment_time 6 \n-hls_list_size 0 -segment_format mpegts \n-hls_segment_filename /res-%v/segment-%d.ts OUTPUT.M3U8 1> log.txt 2>&1 \nRun Code Online (Sandbox Code Playgroud)\n\n总的来说,尽管命令如此庞大,但它还是可以轻松应对任务
\n\n但有一点但是:
\n\n如果您在没有音频的视频上运行此命令,将会出现错误:
\n\nStream map \'0:a:0\' matches no streams. To ignore this, add a trailing \'?\' to the map.\nRun Code Online (Sandbox Code Playgroud)\n\n是的,我知道该命令告诉我找不到音频流。要忽略这一点,您需要在地图上添加一个尾随问号
\n\n但只有我\xe2\x80\x99不明白在哪里?到哪个地方?
\n\n我很乐意接受任何意见或建议
\n\n提前致谢
\n使用-map 0:a:0?,如:
/usr/bin/ffmpeg -i INPUT.MP4
-preset veryfast -r 25 -g 75 -threads 4 -sc_threshold 0
-map 0:v:0 -map 0:a:0?
-filter:v:0 scale=h=240:w=-2
-minrate:v:0 75k
-maxrate:v:0 218k
-bufsize:v:0 300k
-b:v:0 150k -c:a aac -b:a 128k -ac 2
-var_stream_map "v:0,a:0"
-master_pl_name master.m3u8
-f hls -hls_time 3 -segment_time 6
-hls_list_size 0 -segment_format mpegts
-hls_segment_filename /res-%v/segment-%d.ts OUTPUT.M3U8 1> log.txt 2>&1
Run Code Online (Sandbox Code Playgroud)