2013-10-12 54 views
2

我有以下批处理脚本,多数民众赞成从另一个使用为什么第二个电话不能批量工作?

cmd /c 1getthumbs @file > log.txt 

内容1getthumbs称为是:

set initFile=%1 
echo.%initFile% 
set out=%initFile:.mts=-a.jpg% 
rem echo.%out% 

ffmpeg32 -ss 00:00:30 -i "C:\Users\s\Desktop\social\\%1" -frames:v 1 
"C:\Users\s\Desktop\social\thumbs\\%out%" 

set out=%initFile:.mts=-b.jpg% 
echo.%out% 

ffmpeg32 -ss 00:01:00 -i "C:\Users\s\Desktop\social\\%1" -frames:v 1 
"C:\Users\s\Desktop\social\thumbs\%out%" 

下执行第一ffmpeg32而不是第二ffmpeg32 任何想法,为什么?

更新与log.txt的内容时,我测试了:

C:\Program Files\ffmpeg>set initFile="00178.MTS" 

C:\Program Files\ffmpeg>echo."00178.MTS" 
"00178.MTS" 

C:\Program Files\ffmpeg>set out="00178-a.jpg" 

C:\Program Files\ffmpeg>rem echo."00178-a.jpg" 

C:\Program Files\ffmpeg>ffmpeg32 -ss 00:00:30 -i "C:\Users\s\Desktop\social\\"00178.MTS"" -frames:v 1 "C:\Users\s\Desktop\social\thumbs\\"00178-a.jpg"" 

这里是输出,当我执行它调用1getthumbs.bat

C:\Program Files\ffmpeg>cmd /c 1getthumbs "00178.MTS" > log.txt 
ffmpeg version N-52045-g694fa00 Copyright (c) 2000-2013 the FFmpeg developers 
    built on Apr 12 2013 16:54:51 with gcc 4.8.0 (GCC) 
    configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av 
isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab 
le-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetyp 
e --enable-libgsm --enable-libilbc --enable-libmp3lame --enable-libopencore-amrn 
b --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libr 
tmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheo 
ra --enable-libtwolame --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-li 
bvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --ena 
ble-zlib 
    libavutil  52. 26.100/52. 26.100 
    libavcodec  55. 2.100/55. 2.100 
    libavformat 55. 2.100/55. 2.100 
    libavdevice 55. 0.100/55. 0.100 
    libavfilter  3. 53.101/3. 53.101 
    libswscale  2. 2.100/2. 2.100 
    libswresample 0. 17.102/0. 17.102 
    libpostproc 52. 3.100/52. 3.100 
Input #0, mpegts, from 'C:\Users\s\Desktop\social\00178.MTS': 
    Duration: 00:00:02.51, start: 1.000011, bitrate: 24725 kb/s 
    Program 1 
    Stream #0:0[0x1011]: Video: h264 (High) (HDPR/0x52504448), yuv420p, 1920x1 
080 [SAR 1:1 DAR 16:9], 59.94 fps, 59.94 tbr, 90k tbn, 119.88 tbc 
    Stream #0:1[0x1100]: Audio: ac3 (AC-3/0x332D4341), 48000 Hz, stereo, fltp, 
256 kb/s 
    Stream #0:2[0x1200]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0]/0x0090) 
Output #0, image2, to 'C:\Users\s\Desktop\social\thumbs\00178-a.jpg': 
    Metadata: 
    encoder   : Lavf55.2.100 
    Stream #0:0: Video: mjpeg, yuvj420p, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 2 
00 kb/s, 90k tbn, 59.94 tbc 
Stream mapping: 
    Stream #0:0 -> #0:0 (h264 -> mjpeg) 
Press [q] to stop, [?] for help 
[h264 @ 03598580] Missing reference picture, default is 0 
[h264 @ 03598580] decode_slice_header error 
[h264 @ 03598580] Missing reference picture, default is 0 
[h264 @ 03598580] decode_slice_header error 
[h264 @ 03598580] Missing reference picture, default is 0 
[h264 @ 03598580] decode_slice_header error 
[h264 @ 03598580] Missing reference picture, default is 0 
[h264 @ 03598580] decode_slice_header error 
frame= 0 fps=0.0 q=0.0 Lsize=N/A time=00:00:00.00 bitrate=N/A 
video:0kB audio:0kB subtitle:0 global headers:0kB muxing overhead -inf% 
Output file is empty, nothing was encoded (check -ss/-t/-frames parameters i 
f used) 
+0

是,实际的代码?以''c:\ users'开头的两行应该在上面的行末,你在'log.txt'文件中看到了什么? – foxidrive

回答

0

试试这个批处理文件:它可以解决一些引用和斜线问题。
如果ffmpeg32是一个批处理文件,那么你将需要使用call ffmpeg32

set "initFile=%~1" 
echo."%initFile%" 
set "out=%initFile:.mts=-a.jpg%" 
rem echo."%out%" 

ffmpeg32 -ss 00:00:30 -i "C:\Users\s\Desktop\social\%initFile%" -frames:v 1 "C:\Users\s\Desktop\social\thumbs\%out%" 

set "out=%initFile:.mts=-b.jpg%" 
echo."%out%" 

ffmpeg32 -ss 00:01:00 -i "C:\Users\s\Desktop\social\%initFile%" -frames:v 1 "C:\Users\s\Desktop\social\thumbs\%out%" 
+0

我尝试了上面的建议,它似乎执行第二个调用我还在尝试不同的选项 – phill

+0

你是否称过这个批处理文件为“ffmpeg32.bat”?这与日志输出不匹配,但请确保您不要将它称为可执行文件名称。 ffmpeg32 - 是一个'.exe'文件吗? – foxidrive

+0

增加了调用似乎修复它! – phill

相关问题