Recherche avancée

Médias (0)

Mot : - Tags -/xmlrpc

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (101)

Sur d’autres sites (16181)

  • ffmpeg, how to concat two streams, one with and one without audio

    3 janvier 2019, par chasep255

    I have one clip filmed at 240 FPS. I want to slow it down 8x and concat the slow motion version of it to the fast version. The fast version has audio but the slow does not. When I open the finished movie using totem in Ubuntu I get no sound. However, the sound appears to be correct when I use VLC. I think this is an issue with the sound not being the same length as the final movie. I think I somehow need to pad the sound to the length of the final movie. Anyone know how to pad the audio or a better way to do this ?

    ffmpeg -hwaccel cuda -i GX010071_1.MP4 -filter_complex "[0:v]setpts=8*PTS[s];[0:v]framerate=30[f]; [f] [s] concat=n=2 [c]" -map '[c]' -map 0:a -c:v hevc_nvenc SLOW.MP4
  • flutter integration with ffmpeg package for video stream recording using rtsp url

    16 avril, par Brijesh Gangwar
    Launching lib\main.dart on SM X115 in debug mode...
C:\Users\hp\AppData\Local\Pub\Cache\hosted\pub.dev\ffmpeg_kit_flutter_full_gpl-6.0.3\android\src\main\java\com\arthenica\ffmpegkit\flutter\FFmpegKitFlutterPlugin.java:157: error: cannot find symbol
    public static void registerWith(final io.flutter.plugin.common.PluginRegistry.Registrar registrar) {
                                                                                 ^
  symbol:   class Registrar
  location: interface PluginRegistry
C:\Users\hp\AppData\Local\Pub\Cache\hosted\pub.dev\ffmpeg_kit_flutter_full_gpl-6.0.3\android\src\main\java\com\arthenica\ffmpegkit\flutter\FFmpegKitFlutterPlugin.java:651: error: cannot find symbol
    protected void init(final BinaryMessenger messenger, final Context context, final Activity activity, final io.flutter.plugin.common.PluginRegistry.Registrar registrar, final ActivityPluginBinding activityBinding) {
                                                                                          ^
  symbol:   class Registrar
  location: interface PluginRegistry
2 errors

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':ffmpeg_kit_flutter_full_gpl:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

* Try:
> Run with --info option to get more log output.
> Run with --scan to get full insights.

BUILD FAILED in 15s

┌─ Flutter Fix ───────────────────────────────────────────────────────────────────────────────────┐
│ [!] Consult the error logs above to identify any broken plugins, specifically those containing  │
│ "error: cannot find symbol..."                                                                  │
│ This issue is likely caused by v1 embedding removal and the plugin's continued usage of removed │
│ references to the v1 embedding.                                                                 │
│ To fix this error, please upgrade your current package's dependencies to latest versions by     │
│ running `flutter pub upgrade`.                                                                  │
│ If that does not work, please file an issue for the problematic plugin(s) here:                 │
│ https://github.com/flutter/flutter/issues                                                       │
└─────────────────────────────────────────────────────────────────────────────────────────────────┘
Error: Gradle task assembleDebug failed with exit code 1

Exited (1). 


    


    how to solve this

    


    I tried to use widget_record_video package instead but it is still depended on flutter ffmpeg package.
I have already tried to install app on real device.
Help me out to solve this error

    


  • converting files with FFMPEG ... NO MOOV ATOM at the end of the file

    5 avril 2013, par Popa Ovidiu-Razvan

    I'm doing the following :

    1. I use FFMPEG into a Delphi XE2 program to convert any file that I receive into a mp4 file.
    2. I also use qr-faststart to move the atom to the begin of the file after converting.

    The problem is after the conversion of some files (not always) the qr-faststart give the following error :

    • "encountered non-QT top-level atom (is this a QuickTime file ?)"
    • "last atom in the file vas not a moov atom"

    The command line for FFMPEG is : -i "sourceFile" -sameq "destinationFile"

    The command line for qt-faststart is "sourceFile" "destFile"

    Here is the full code of both function :

    function TfrmMain.ConvertFile(aVideoFile: String; var aNewFile: String): Boolean;
    var SEInfo: TShellExecuteInfo;
       ExitCode: DWORD;
       ExecuteFile, ParamString, StartInString: string;
       tmpVideoFile : String;
       logCommand   : String;
    begin
     logMain.WriteFeedBackMessage(Format('enter ConvertFile %S ...', [aVideoFile]), '', EVENTLOG_INFORMATION_TYPE, False);
     Result := False;
     StartInString := edConverterPath.Text;
     tmpVideoFile  := ExtractFileName(aVideoFile);
     aNewFile      := ChangeFileExt(tmpVideoFile, '.mp4');
     if tmpVideoFile = aNewFile then begin
       logMain.WriteFeedBackMessage('the file is already converted ...', '', EVENTLOG_INFORMATION_TYPE, False);
       if OptimizeFastStart(aVideoFile) then begin
         Result := True;
       end;
       Exit;
     end;
     aNewFile := ExtractFilePath(aVideoFile) + aNewFile;
     if FileExists(aNewFile) then begin
       DeleteFile(aNewFile);
     end;
     logCommand := '';
     if ckLog.Checked then begin
       logCommand := ' -loglevel verbose -report';
     end;
     ParamString := '-i "' + aVideoFile + '" -sameq "' + aNewFile + '" ' + logCommand;
     logMain.WriteFeedBackMessage(Format('ParamString %S', [ParamString]), '', EVENTLOG_INFORMATION_TYPE, False);
     ExecuteFile := IncludeTrailingBackslash(StartInString) + 'ffmpeg.exe';
     if FileExists(ExecuteFile) then begin
       FillChar(SEInfo, SizeOf(SEInfo), 0) ;
       SEInfo.cbSize := SizeOf(TShellExecuteInfo) ;
       with SEInfo do begin
         fMask := SEE_MASK_NOCLOSEPROCESS;
         Wnd := Application.Handle;
         lpFile := PChar(ExecuteFile) ;
         //ParamString can contain the application parameters.
         lpParameters := PChar(ParamString) ;
         //  StartInString specifies the  name of the working directory. If ommited, the current directory is used.
         lpDirectory := PChar(StartInString) ;
         nShow := SW_SHOWNORMAL;
       end;
       if ShellExecuteEx(@SEInfo) then begin
         repeat
           Application.ProcessMessages;
           GetExitCodeProcess(SEInfo.hProcess, ExitCode) ;
         until (ExitCode <> STILL_ACTIVE) or Application.Terminated;
       end;
       if FileExists(aNewFile) then begin
         logMain.WriteFeedBackMessage(Format('Converting Video %S succesfull!', [aVideoFile]), Format('File %S was created.', [aNewFile]), EVENTLOG_INFORMATION_TYPE, True, False, False);
         if OptimizeFastStart(aNewFile) then begin
           Result := True;
         end;
       end;
     end else begin
       logMain.WriteFeedBackMessage(Format('File %S does not exist on the server!', [ExecuteFile]), 'The converter cannot be located on the disk!' + #13#10 + ExecuteFile, EVENTLOG_ERROR_TYPE, True, False, False);
     end;
    end;

    the fast start is here

    function TfrmMain.OptimizeFastStart(aVideoFile: String): Boolean;
    var SEInfo: TShellExecuteInfo;
       ExitCode: DWORD;
       ExecuteFile, ParamString, StartInString: string;
       strVideoFile : String;
       newVideoFile : String;
       startCommand : String;
    begin
     // you need fast start utility
     logMain.WriteFeedBackMessage(Format('enter OptimizeFastStart %S ...', [aVideoFile]), '', EVENTLOG_INFORMATION_TYPE, False);
     Result := False;
     StartInString := edConverterPath.Text;
     strVideoFile  := ExtractFileName(aVideoFile);
     newVideoFile  := 'TMP_' + strVideoFile;
     if strVideoFile = aVideoFile then begin
       strVideoFile  := StartInString + strVideoFile;
       newVideoFile  := StartInString + newVideoFile;
     end;
     if not FileExists(strVideoFile) then begin
       logMain.WriteFeedBackMessage(Format('file %S dont exist...', [strVideoFile]), '', EVENTLOG_INFORMATION_TYPE, False);
       Exit;
     end;
     if FileExists(newVideoFile) then begin
       DeleteFile(newVideoFile);
     end;

     ParamString := Format('"%S" "%S"', [strVideoFile, newVideoFile]);
     ExecuteFile := IncludeTrailingBackslash(StartInString) + 'qt-faststart.exe';
     if FileExists(ExecuteFile) then begin
       logMain.WriteFeedBackMessage(Format('source %S destination %S', [strVideoFile, newVideoFile]), '', EVENTLOG_INFORMATION_TYPE, False);
       FillChar(SEInfo, SizeOf(SEInfo), 0) ;
       SEInfo.cbSize := SizeOf(TShellExecuteInfo);
       with SEInfo do begin
         fMask := SEE_MASK_NOCLOSEPROCESS;
         Wnd := Application.Handle;
         lpFile := PChar(ExecuteFile) ;
         lpParameters := PChar(ParamString);
         lpDirectory  := PChar(StartInString);
         nShow        := SW_SHOWNORMAL;
       end;
       if ShellExecuteEx(@SEInfo) then begin
         repeat
           Application.ProcessMessages;
           GetExitCodeProcess(SEInfo.hProcess, ExitCode) ;
         until (ExitCode <> STILL_ACTIVE) or Application.Terminated;
       end;
       logMain.WriteFeedBackMessage(Format('after file executed...', [strVideoFile]), '', EVENTLOG_INFORMATION_TYPE, False);
       sleep(500);
       Application.ProcessMessages;
       if FileExists(newVideoFile) then begin
         DeleteFile(strVideoFile);
         Application.ProcessMessages;
         sleep(500);
         Application.ProcessMessages;
         logMain.WriteFeedBackMessage(Format('before rename file...', [strVideoFile]), '', EVENTLOG_INFORMATION_TYPE, False);
         if RenameFile(newVideoFile, strVideoFile) then begin
           logMain.WriteFeedBackMessage(Format('rename file OK...', [strVideoFile]), '', EVENTLOG_INFORMATION_TYPE, False);
           Result := True;
           logMain.WriteFeedBackMessage(Format('Processing Video %S for WEB succesfull!', [strVideoFile]), '', EVENTLOG_INFORMATION_TYPE, True);
         end;
       end else begin
         logMain.WriteFeedBackMessage(Format('file %S does not exist!...', [newVideoFile]), '', EVENTLOG_INFORMATION_TYPE, True);
       end;
     end else begin
       logMain.WriteFeedBackMessage('Cannot find the qt-faststart.exe converter on the disk!', ExecuteFile, EVENTLOG_ERROR_TYPE, True);
     end;
    end;

    Can anyone advice me how to fix this problem.