日期:2014-05-16  浏览次数:20694 次

ffmpeg命令
tmp=$(date +%N);ffmpeg -i xx.avi &> _test_$tmp;grep Duration _test_$tmp | awk -F'[, ]' '{print $4}' ;rm _test_$tmp ; 这句命令据说是在linux 获取视频播放时长的命令,
想请哪位给我解释下这命令是什么意思!! 谢谢了!

tmp=$(date +%N); 这个没有看懂 


test_$tmp;grep Duration _test_$tmp | awk -F'[, ]' '{print $4}' ;rm _test_$tmp ;

这更加是没有看懂!!为什么还有管道命令??

------解决方案--------------------
%N nanoseconds (000000000..999999999)

就是打印当前时间是1秒中的第几纳秒的意思.

tmp=$(date +%N) 是把date +%N的结果赋值给tmp.


ffmpeg -i xx.avi &> _test_$tmp; 这是一句,意思是标准输出/错误重定向到_test_$tmp文件。

grep Duration _test_$tmp | awk -F'[, ]' '{print $4}' ; 得到_test_$tmp文件中带有关键字Duration 的行,传给awk程序,awk程序以,或者空格作为分隔符,打印第4列。
 
rm _test_$tmp ;这是一句,删除_test_$tmp 文件